Java类路径库(jar)

时间:2012-10-27 16:11:17

标签: java jar classpath

我不知道如何用另一个库编译和运行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旁边,它可以完美地工作(这是预期的);你甚至不需要指定类路径。

我认为classpath是JVM在哪里查找文件的指导。指定jmathplot.jar指示JVM在jmathplot.jar中查找/ org / math / plot结构。

我哪里错了?有人能为我提供编译和运行Graph.java的正确方法吗?我将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:1)

为什么你没有使用可以为你工作的IDE(Eclipse,Netbeans ......)?

答案 1 :(得分:0)

尝试使用正斜杠而不使用点。像这样: javac -cp \jmathplot.jar Graph.java

答案 2 :(得分:0)

将所有.class个文件编译成/path/to/some/dir后,您可以使用以下命令运行它:

java -cp "~/jmathplot.jar;/path/to/some/dir/*" com.package.YourMainClass