別のライブラリで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をコンパイルして実行する正しい方法を教えてもらえますか?よろしくお願いします。ありがとう!