Linux/ubuntu で Java プログラムを実行できません。
私はこの問題に丸一日取り組んできましたが、解決策が見つからないようです。Windows 7 マシンで Eclipse を使用して小さな Java プログラムを作成しましたが、問題なく動作します。これが私のコードです:
//start of java program jsonReader
package jsonReader;
//imports needed to run program
import java.io.FileNotFoundException;
import org.codehaus.jackson.map.*;
import org.codehaus.jackson.*;
インポート org.codehause.jackson.. を機能させるために、プロジェクトに次の jar ファイルを手動で含める必要がありました: jackson-all-1.9.11.jar
//class jsonReader
public class jsonReader {
//start of main
public static void main (String[] args) throws FileNotFoundException {
この残りの部分は、問題なく動作する私のプログラムです。
私のプロジェクトの次のステップは、Ubuntu - コマンドラインで実行することです。私は Eclipses でエクスポートを行いました: ファイル -> エクスポート -> 一般 -> アーカイブ ファイル -> Zip ファイルを作成しました。
この zip ファイルは、私の linux/ubuntu 環境に転送されました。そこから、ファイルを解凍しました。これはディレクトリ構造です:
私が持っているホームディレクトリに:
/jsonReader --> has the following directories in it:
-/bin/jsonReader/jsonReader.class
-/lib/jackson-all-1.9.11.jar
-/src/jsonReader/jsonReader.java
-.classpath (file); and a few other files.
/jsonReader/src/jsonReader で、次のコマンドを実行します: javac jsonReader.java --> 次のエラーが発生します:
jsonReader.java:6: package org.codehaus.jackson.map does not exist
import org.codehaus.jackson.map.*;
^
jsonReader.java:7: package org.codehaus.jackson does not exist
import org.codehaus.jackson.*;
^
次に、次のコマンドを実行します。
javac -classpath /jsonReader/lib/jackson-all-1.9.11.jar jsonReader.java
エラーは発生しません。このコマンドは、/src/jsonReader ディレクトリに jsonReader.class ファイルを作成します。次のコマンドを使用してファイルを実行しようとしました。
java jsonReader
次のエラーが表示されます。
Exception in thread "main" java.lang.NoClassDefFoundError: jsonReader (wrong name: jsonReader/jsonReader)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: jsonReader. Program will exit.
これは、コマンド ラインでこれを実行したときに表示されるエラー メッセージ全体です。
このエラーが発生する理由と解決方法がわかりません。