我以前从没用过第三方图书馆。下载jfreechart-1.0.14.tar.gz
后我该怎么办?
我不知道我做得对不对
jcommon-1.0.17.jar
和jfreechart-1.0.14.jar
放在与我的源代码相同的目录中。import org.jfree.util.Rotation;
)许多文章告诉您如何在IDE中做到这一点。但是我没有用IDE,而是用vim编写代码,自己编译。因此,假设我没有做错任何事情,我应该如何用javac
编译源代码并使用java
运行代码?
编辑:
这是我的文件布局:
./src
( test.java )
./利卜
\x{e76f}-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
但是,出现了一些错误:
线程"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
发布于 2013-05-18 13:31:05
库不应该与源代码位于同一个位置。如果您不想使用像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
https://stackoverflow.com/questions/16624671
复制相似问题