2011-01-19 4 views
0

私はJavaを使い慣れていません。より良いタイトルをお勧めします。eclipse IDEを使ってAPIの例を実行するにはどうすればいいですか?

私は、MS Outlookの.pstファイルの解析に関連するさまざまなことを行う多くの実行可能モジュールを持つJava APIを持っています。あなたがチェックすることができ

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. 

これまでのところ...
- そして、私の問題は、私はAPI(java -classpath /opt/Java/libs/JPST/lib/jpst.jar /opt/Java/libs/JPST/examples/GetInboxMessages/bin/Example)の1つのモジュールの.classファイルを実行するためにexecuteコマンドを実行したときに、私はこの例外を取得していますということですmy previous questionここで私はcompileexecuteコマンドを正しく実行していると判断しました。しかし、私はまだ上記の `例外を取得しています。

私は、EclipseまたはNetbeans IDEを入手する必要があると言うAPIの開発者に尋ねました。彼は、APIの フォルダ構造内の

examplesフォルダが全体のEclipse ワークスペースがあることを述べました。

もが

すべて 例をコンパイルして実行することが容易であると述べました。

そして今...
だから、私は、JavaのセットアップのEclipse Heliosのを持っています。誰でもコンパイルして、すべてのサンプルを実行するのは簡単です(私はサンプルフォルダ内のモジュールはIDEだと思います)。以前はPHP用のEclipseで作業しましたが、Java向けには使用しませんでした。 APIの

フォルダ構造
Iは、(多くのモジュールフォルダがdirectory例の内部に存在している)これらのモジュールのうちの一つの.classファイルを実行する必要があります。このようなモジュールは、APIのexamplesフォルダ内にたくさんあります。これらのモジュールの各フォルダには、binフォルダ(.classファイルを含む)とsrcフォルダ(.javaファイルを含む)が含まれています。そのようなファイルを実行する必要があります。.class

.classファイルで参照される必要がある.jarファイルを含むlibディレクトリがあります。 libディレクトリは、examplesディレクトリと同じレベルにあります。

ソリューション
私はジョナサンによって与えられた解決策は、(なし-使用-elipse場合のみ検証)動作することを確認しました。 classpathは、コンパイルコマンドと実行コマンドの両方にすべてのクラスの場所を含める必要があることを明確にするために、

java -classpath /path/to/Parent.jar/file/Parent.jar:/path/to/Example.class/file Example 

を実行し、セパレーターを注意し

コンパイル

javac -classpath /path/to/Parent.jar/file/Parent.jar:/path/to/Example.java/file/ Example.java 

- - Linux用:する必要があります:あなたは、依存関係Parent.jarExample.javaファイルをコンパイルして実行する必要があるのであれば、これを行いますウィンドウの場合は;です。

おかげで、
Sandeepan

答えて

1

Eclipseが起動すると、使用するワークスペースが尋ねられます。 Examplesフォルダを選択し、実際にEclipseワークスペースの場合は、すべてのプロジェクトが既に設定されていることを確認する必要があります(プロジェクトのサイズとマシンの速度によってすべてのビルドに時間がかかる場合があります)。次に、あなたが望むクラスを見つけ出して実行するだけです。すべてが正しく設定されていれば、うまくいくはずです。それ以外の場合は、開発者に戻ってください。

しかし、私はあなたがその1つのクラスを実行するためにEclipseを必要とは思わない。質問の冒頭で提供したスタックトレースを見ると、クラスパスを適切に設定していないため、実行に失敗したように見えます。お試しください:

java -classpath /opt/Java/libs/JPST/lib/jpst.jar:/opt/Java/libs/JPST/examples/GetInboxMessages/bin Example 

非常に簡単に説明します:クラスパスは、Javaが必要とするクラスを探す場所をリストします。ファイルパスではなく、クラスパスを基準にして実行するクラスを指定します。 "/ opt/Java/libs/JPST/examples/GetInboxMessages/bin"フォルダ内で実行しようとしているクラスのため、このフォルダはクラスパス上になければなりません(注意してください。ウィンドウは ';'ではなく、 ';'ではないエントリを区切るために ';'を使います)。次に、クラスパスを基準にしてクラスを単独で実行するように指定します(この場合はクラス名だけです)。

これは非常にの基本的な概要です。パッケージ(binフォルダの下に表示されるフォルダ)の使用を開始すると、より複雑になります。これは、Eclipseのようなプログラムを使うことの利点の1つで、多くのことを処理します。

+0

偉大な答え!今のところEclipseの設定部分は無視されます。 Eclipseを使用せずに実行するためのヒントは完璧に正常に働いた。私はクラスパスを適切に設定していませんでした。私は 'jpst.jar'だけが' classpath'に追加されることを前提としていました。なぜならそれは依存関係だったからですが、 'Example.class'ファイルのパスもクラスパスに追加する必要があると指摘したように。優れた質の答え。良い仕事を続けてください! –

0

は、クラスパスの問題のようですね。

  • eclipseでプロジェクトを右クリックします。ビルドパスに

  • ゴー> jarファイルをライブラリ]タブで、それはそれを追加されていない場合は、参照されていることを確認し、ビルド・パス

  • を設定します。
+0

あなたの答えをありがとう。私はそれをしました。 "Java Build Path"メニューには4つのタブがあります。ライブラリメニューでは、 'jar'ファイルが存在します。 "Order and Export"メニューでは、その '.jar'ファイルに対するチェックボックスはチェックされていません。 –

関連する問題