-1

私は日食に取り組んでおり、外部ライブラリを使用する必要があります。たとえば、Jsoup と JXL です。

これまでに行ったことは次のとおりです。まず、プロジェクトフォルダーに「lib」フォルダーを作成しました。その後、Eclipseで、プロジェクトのプロパティ、[ライブラリ]タブをクリックし、外部jarを追加して、libフォルダーにjarを追加しました。

これでコンパイルの問題が解決します。ここで、プログラムを実行すると (project/bin に移動し、コンソールで java ProgramName を実行します。

java.lang.NoClassDefFoundError: 

テストのために、Jar ファイルを Main.java があるフォルダーに追加しました。これで、次のようにプログラムを実行できるようになりました。

javac -classpath ./path/to/jar Main.java
java -classpath ./path/to/jar:. Main  

そして、これは機能します。

したがって、最初に頭に浮かぶのは、それぞれのライブラリを見つける場所を Java に指示する必要があるということです。これが正しい場合は?どうすればいいのですか?

java -cp ???(dont know what to put here)

しかし、さらに。別の問題があります。私はこのプログラムをコンピューターで書いていますが、おそらくそれらのライブラリーを持っていない他のコンピューターで使用するつもりです。この問題を解決するにはどうすればよいですか?

4

3 に答える 3

0

次のようなものを使用するのが好きです。

java -cp myjar.jar;lib/*.jar com.foo.bar.MyClass

これにより、jar がクラスパスに追加されるだけでなく、libディレクトリ内の jar も追加されます。

jar を別のコンピューターで実行する場合は、それらの jar も必要になります。jar だけを持つことはできません。libディレクトリも一緒にパッケージ化しないのはなぜですか?

于 2013-04-23T16:14:32.260 に答える
0

この構造がある場合:

project folder
... code
... libs

次にコードフォルダーから:

javac -cp .;../libs/*.jar yourmainclass.java
java -cp  .;../libs/*.jar yourmainclass

このプロジェクトをコンパイルして実行する必要がある場合は、すべてのフォルダーを取得して、他のマシンで同じことを行います。

于 2013-04-23T16:18:38.560 に答える