我是新手在我的应用程序上使用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里面检查过,文件就在那里。任何线索可能是为什么?
答案 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
干杯!