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

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

于 2012-10-27T16:19:55.570 回答
0

您为什么不使用可以为您完成工作的 IDE(Eclipse、Netbeans...)?

于 2012-10-27T16:17:35.967 回答