我刚开始在我的应用程序上使用jar文件,所以这是我的问题。我在net beans上编写了代码,并将我需要的jar文件添加到库中,这是:poi-3.10-FINAL
。该程序从net-beans完美运行,然而,当我试图从命令行运行它似乎没有找到jar中的一些文件。原因是我想让它成为一个可执行文件后,我得到这个解决。
在命令行中,我按照如下方式编译代码:
C:Userschuser10DesktopExcelsrcexcel>javac *.java -cp C:Userschuser10Des
ktopExcelsrcexcellibpoi-3.10-FINAL.jar
它可以完美地编译,这让我认为一切都很好,但事实并非如此。然后我试着运行我的主…>java GUI和我得到这个:
C:Userschuser10DesktopExcelsrcexcel>java GUI
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apach
e/poi/poifs/filesystem/POIFSFileSystem
我检查了jar内部,文件在那里。知道这是为什么吗?
在运行程序时也需要指定类路径。编译不会像在C和许多其他语言中那样将库链接到代码中;在Java中,链接发生在运行时。
可能-cp .;C:Userschuser10DesktopExcelsrc Excel libpoi-3.10-FINAL.jar将是您需要的。"。’开头表示当前目录,即构成程序的类文件的根目录。';'只是一个分隔符。
搞定了。你们都是对的,我们也必须在运行时指定类路径。
我继续创建可执行的jar文件,并把它放在我的清单中:
. .>jar CFM <* . class>
在我的manifest:
- path: poi final.jar——3.10主类:GUI
干杯!