我正在尝试构建一个可执行的jar程序,它取决于下载的外部jar.在我的项目中,我将它们包含在构建路径中,并且可以在eclipse中运行和调试.
当我尝试将它导出到jar时,我可以运行该程序,但是当我尝试按下包含来自外部jar的函数调用和类的按钮时,我无法运行.我编辑了环境变量(Windows XP)CLASSPATH以包含所有外部jar的路径,但它不起作用.
需要注意的一点是,我在导出可执行jar时遇到了编译警告,但它没有显示有关警告的任何描述.
有人会提供一个关于如何使用eclipse包含外部jar程序的详尽指南吗?
Eclipse 3.5有一个选项可以将所需的库打包到runnable jar中.文件 - >导出...选择runnable jar并单击下一步.可运行的jar导出窗口有一个单选按钮,您可以在其中选择将所需的库打包到jar中.
您可以通过为jar 创建清单来完成此操作.看看Class-Path标头.Eclipse可以选择在导出时选择自己的清单.
另一种方法是在调用应用程序时将依赖项添加到类路径:
win32: java.exe -cp app.jar;dependency.jar foo.MyMainClass *nix: java -cp app.jar:dependency.jar foo.MyMainClass
如何将项目的jar包含到runnable jar中:
我正在使用Eclipse版本:3.7.2在Ubuntu 12.10上运行.我还将向您展示如何制作,build.xml
以便您可以执行ant jar
命令行并使用提取到其中的其他导入jar创建jar.
基本上你要求Eclipse构造build.xml,将你的库导入jar中.
启动Eclipse并创建一个新的Java项目,创建一个新包'mypackage',添加您的主类:Runner
将此代码放在那里.
现在包括mysql-connector-java-5.1.28-bin.jar
来自Oracle的Oracle,它使我们能够编写Java来连接MySQL数据库.通过右键单击项目 - >属性 - > java构建路径 - >添加外部Jar - >选择mysql-connector-java-5.1.28-bin.jar来完成此操作.
在eclipse中运行程序,它应该运行,并告诉你用户名/密码是无效的,这意味着Eclipse正确配置了jar.
在Eclipse中转到File
- > Export
- > Java
- > Runnable Jar File
.您将看到此对话框:
确保设置'另存为ant脚本'复选框.这就是为什么你可以使用命令行来做一个ant jar
.
然后转到终端并查看ant脚本:
所以你看,我运行jar并没有错误,因为它发现包含mysql-connector-java-5.1.28-bin.jar
嵌入内部Hello.jar
.
查看Hello.jar里面: vi Hello.jar
你会看到许多引用com/mysql/jdbc/stuff.class
要ant jar
在命令行上自动完成所有这些操作:重命名buildant.xml
为build.xml
,并将目标名称从更改create_run_jar
为jar
.
然后,从MyProject
你内部打字ant jar
和繁荣.你在MyProject中有你的jar.你可以使用java -jar Hello.jar
它调用它,一切正常.
作为一种好的做法,您可以使用Ant脚本(Eclipse附带它)来生成JAR文件.在这个JAR中,您可以拥有所有依赖库.
您甚至可以将MANIFEST的Class-path标头设置为指向文件系统中的文件,但这不是一个好习惯.
Ant build.xml脚本示例: