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



我刚开始在我的应用程序上使用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

干杯!

最新更新