私はJavaが初めてで、質問のタイトルがどれだけ適切かわかりません。何か良いタイトルを教えてください。
.pst
MS Outlook のファイルの解析に関連するさまざまなことを実行する多くの実行可能モジュールを含む Java API を取得しました。そして私の問題は、execute
コマンドを実行し.class
てAPIの1つのモジュールのファイルを実行すると、この例外が発生することです( java -classpath /opt/Java/libs/JPST/lib/jpst.jar /opt/Java/libs/JPST/examples/GetInboxMessages/bin/Example
)-
Exception in thread "main" java.lang.NoClassDefFoundError: /opt/Java/libs/JPST/examples/GetInboxMessages/bin/Example
Caused by: java.lang.ClassNotFoundException: .opt.Java.libs.JPST.examples.GetInboxMessages.bin.Example
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: /opt/Java/libs/JPST/examples/GetInboxMessages/bin/Example. Program will exit.
これまでのところ... andコマンドを正しく実行していると結論付けた前の質問
を確認できます。しかし、上記の「例外」がまだ発生しています。compile
execute
私は API の開発者に、Eclipse または Netbeans IDE を入手すべきだと言っていると尋ねました。彼は言った
examples
API のフォルダー構造内のフォルダーは、Eclipse ワークスペース全体です。
そしてまた言った
すべての例をコンパイルして実行する方が簡単です。
そして今...
だから、Java用のEclipse Heliosをセットアップしました。IDE を使用して、すべての例 (examples フォルダー内のモジュールだと思います) を簡単にコンパイルして実行する方法を教えてください。私は以前、PHP 用に Eclipse を使用したことがありますが、Java 用には使用したことがありません。
API のフォルダー構造
これらのモジュールの 1 つのファイル
を実行する必要があり.class
ます (多くのモジュール フォルダーが examples 内に存在しますdirectory
)。API のサンプル フォルダー内には、このようなモジュールが多数存在します。これらの各モジュール フォルダーには、bin
フォルダー (.class
ファイルを含む) とsrc
フォルダー (.java
ファイルを含む) が含まれます。そのようなファイルを 1 つ実行する必要があり.class
ます。
lib
ファイルを含むディレクトリがあります.jar
(ターゲット ファイルによって参照される必要があり.class
ます)。ディレクトリは、lib
ディレクトリと同じレベルにありexamples
ます。
解決策
Jonathan によって提供された解決策が機能することを確認しました (エリプスを使用しない場合のみ確認済み)。より明確にするclasspath
ために、コンパイル コマンドと実行コマンドの両方にすべてのクラスの場所を含める必要があります。Example.java
したがって、依存関係のあるファイルをコンパイルして実行する必要がある場合は、次のようにしますParent.jar
。
コンパイル
javac -classpath /path/to/Parent.jar/file/Parent.jar:/path/to/Example.java/file/ Example.java
実行する
java -classpath /path/to/Parent.jar/file/Parent.jar:/path/to/Example.class/file Example
セパレーターに注意してください:
-Linuxおよび;
Windows用である必要があります。
ありがとう、
サンディパン