1

これまでサードパーティのライブラリを使用したことがありません。ダウンロード後はどうすればいい jfreechart-1.0.14.tar.gzですか?

これらのことを正しく行っているかどうかわかりません: 1. andをソース コードと同じディレクトリに
置きます。 2.ソースコードに必要なクラスをインポートします(例)jcommon-1.0.17.jarjfreechart-1.0.14.jar
import org.jfree.util.Rotation;

IDE でこれを行う方法については、多くの記事で説明されています。しかし、IDE の代わりに、vim でコードを書き、自分でコンパイルしています。それで、私が何も間違ったことをしていないと仮定すると、どのようにソースコードをコンパイルしてコードをjavac実行すればよいjavaでしょうか?


編集:

これが私のファイル レイアウト
です
。-test.java
./lib
| - jcommon-1.0.17.jar
| - jfreechart-1.0.14.jar

私はコンパイルして
javac -cp "lib/*" -d classes/ src/test.java
から実行します
java -cp classes:lib/jcommon-1.0.17.jar:jfreechart-1.0.14.jar test

ただし、いくつかのエラーが発生します:
Exception in thread "main" java.lang.NoClassDefFoundError: org/jfree/data/general/PieDataset

この問題を解決するにはどうすればよいですか?


Exception in thread "main" java.lang.NoClassDefFoundError: org/jfree/data/general/PieDataset  
at java.lang.Class.getDeclaredMethods0(Native Method)  
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)  
at java.lang.Class.getMethod0(Unknown Source)  
at java.lang.Class.getMethod(Unknown Source)  
at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)  
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)  
Caused by: java.lang.ClassNotFoundException: org.jfree.data.general.PieDataset  
at java.net.URLClassLoader$1.run(Unknown Source)  
at java.net.URLClassLoader$1.run(Unknown Source)  
at java.security.AccessController.doPrivileged(Native Method)  
at java.net.URLClassLoader.findClass(Unknown Source)  
at java.lang.ClassLoader.loadClass(Unknown Source)  
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)  
at java.lang.ClassLoader.loadClass(Unknown Source)  
... 6 more
4

1 に答える 1

1

ライブラリは、ソース コードと同じ場所にあってはなりません。ライブラリの依存関係を処理する Gradle のようなビルド ツールをまだ使用したくない場合は、次のレイアウトを使用することをお勧めします。

project
    src
        .java files here, organized in a folder tree matching the package tree
    classes
        compiled .class files here
    lib
        .jar files here

コンパイルするには、プロジェクト ディレクトリに移動し、次のコマンドを実行します。

javac -cp lib/jfreechart-1.0.14.jar:lib/jcommon-1.0.17.jar -d classes src/com/foo/bar/MyClass.java src/com/foo/bar/MyOtherClass.java

アプリを実行するには、次のコマンドを実行します。

java -cp classes:lib/jfreechart-1.0.14.jar:lib/jcommon-1.0.17.jar com.foo.bar.MyClass
于 2013-05-18T13:31:05.090 に答える