2

別のライブラリでJavaプログラムをコンパイルして実行する方法がわかりません。私はこれについて多くのスレッドを読みましたが、どれも役に立ちませんでした。それらのほとんどは、まともな例を提供する代わりに、それについて話しているだけです。先週試してみましたが、うまくいきませんでした。

私が次の構造を持っていると想像してください(〜はホームディレクトリです):

  • 〜/ Graph.java
  • 〜/ jmathplot.jar

Graph.javaは次で始まります:

import org.math.plot.Plot2DPanel;

public class Graph { ... }

それ(org.math.plot)は.jar構造に対応します。だから私が読んだものから(私がこれを〜ディレクトリから実行した場合):

javac -classpath ./jmathplot.jar Graph.java

これはうまくいくはずです。しかし、そうではありません。jmathplot.jarから一連の.classファイルを生成するだけで、実行しようとするとNoClassDefFoundErrorが発生します。jmathplot.jarから「org」フォルダーを抽出してGraph.javaの隣に置くと、問題なく動作します(これは予想どおりです)。クラスパスを指定する必要もありません。

クラスパスは、ファイルを探す場所をJVMに示すガイダンスだと思います。jmathplot.jarを指定すると、JVMはjmathplot.jarで/ org / math/plot構造を検索するように指示されます。

私はどこが間違っていますか?誰かがこのGraph.javaをコンパイルして実行する正しい方法を教えてもらえますか?よろしくお願いします。ありがとう!

4

3 に答える 3

1

すべての.classファイルを にコンパイルし/path/to/some/dirたら、次のように実行できます。

java -cp "~/jmathplot.jar;/path/to/some/dir/*" com.package.YourMainClass
于 2012-10-27T16:20:53.670 に答える
0

代わりに作業を実行できる IDE (Eclipse、Netbeans...) を使用しなかったのはなぜですか?

于 2012-10-27T16:17:35.967 に答える
0

スラッシュを付けて、ドットなしで試してください。このような: javac -cp \jmathplot.jar Graph.java

于 2012-10-27T16:19:55.570 に答える