编译和执行使用Jar文件的Java类

时间:2014-05-07 20:21:22

标签: java excel jar executable-jar

我是新手在我的应用程序上使用jar文件,所以这是我的问题。 我在net beans上编写了我的代码,并将我需要的jar文件添加到库中,这是: poi-3.10-FINAL。该程序完全从net-beans运行,但是当我尝试从命令行运行它时,似乎它没有找到jar中的一些文件。原因我想在解决之后将其变为可执行文件。

在命令行中,我按如下方式编译代码:

C:\Users\chuser10\Desktop\Excel\src\excel>javac *.java -cp C:\Users\chuser10\Des
ktop\Excel\src\excel\lib\poi-3.10-FINAL.jar

它汇编得很完美,这让我觉得一切都很好,但事实并非如此。我尝试然后运行我的主...作为...> java GUI,我得到了这个:

C:\Users\chuser10\Desktop\Excel\src\excel>java GUI
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apach
e/poi/poifs/filesystem/POIFSFileSystem

我在jar里面检查过,文件就在那里。任何线索可能是为什么?

2 个答案:

答案 0 :(得分:0)

当您运行程序时,您还需要指定类路径。编译不会像C和许多其他语言中那样将库链接到您的代码中;在Java链接中发生在运行时。

可能是-cp .; C:\ Users \ chuser10 \ Desktop \ Excel \ src \ excel \ lib \ poi-3.10-FINAL.jar将是您所需要的。 '。'在开头是指当前目录,这是构成程序的类文件的根目录。 ';'只是一个分隔符。

答案 1 :(得分:0)

搞定了。你们都是正确的,我们也必须在运行时指定类路径。

我继续前进并创建可执行jar文件并将其放在我的清单上:

..> jar cfm< *的.class>

在我的清单上:

Class-Path:poi-3.10-FINAL.jar 主类:GUI

干杯!