![](/img/trans.png)
[英]In Linux, how to execute Java jar file with external jar files?
[英]Java: Adding included Jar files to a created Jar file in linux
我需要帮助,包括将导入的jar文件包含到Linux中的Java程序中。 这是程序:
import java.sql.*;
public class CreateCoffees
{
public static void main(String args[])
{
try {
Class.forName("com.ibm.db2.jcc.DB2Driver");
}
catch(java.lang.ClassNotFoundException e) {
System.err.print("ClassNotFoundException: ");
System.err.println(e.getMessage());
System.exit(1);
}
}
}
为了执行Class.forName("com.ibm.db2.jcc.DB2Driver");
我需要将两个.jar
文件添加到类路径中:
db2jcc_license_cu.jar
db2jcc4.jar
我将这些jar文件放入与CreateCoffees.java文件相同的目录中,然后像这样编译并运行它:
javac CreateCoffees.java
java CreateCoffees
但是我得到这个错误
ClassNotFoundException: com.ibm.db2.jcc.DB2Driver
然后我尝试了“ -classpath”选项
javac -classpath ./db2jcc_license_cu.jar:./db2jcc4.jar CreateCoffees.java
java -classpath ./db2jcc_license_cu.jar:./db2jcc4.jar CreateCoffees
但是得到这个
Exception in thread "main" java.lang.NoClassDefFoundError: CreateCoffees
Caused by: java.lang.ClassNotFoundException: CreateCoffees
如何将那些jar文件包含到我的可运行jar中,以便可以使用java -jar myjar.jar
来运行它?
尝试这个
java -classpath ./db2jcc_license_cu.jar:./db2jcc4.jar:. CreateCoffees
当您使用-classpath
它会从classpath中删除当前目录,因此需要.
同样在classpath中
如何将项目的jar包含到可运行的jar中:
我将逐步介绍在Ubuntu 12.10上运行的Eclipse版本:3.7.2。 我还将向您展示如何制作build.xml
以便您可以从命令行执行ant jar
并使用提取到其中的其他导入的jar创建jar。
基本上,您要求Eclipse构造将您的库导入jar的build.xml。
启动Eclipse并创建一个新的Java项目,创建一个新的包“ mypackage”,并添加您的主类: Runner
将此代码放入其中。
现在包括来自Oracle的mysql-connector-java-5.1.28-bin.jar
,它使我们能够编写Java以连接到MySQL数据库。 通过右键单击项目->属性-> Java构建路径->添加外部Jar->选择mysql-connector-java-5.1.28-bin.jar来执行此操作。
在eclipse中运行该程序,它应该运行,并告诉您用户名/密码无效,这意味着已使用jar正确配置了Eclipse。
在Eclipse中去File
- > Export
- > Java
- > Runnable Jar File
。 您将看到以下对话框:
确保设置“另存为蚂蚁脚本”复选框。 这就是它的原因,因此您以后可以使用命令行来做一个ant jar
。
然后转到终端并查看ant脚本:
因此,您看到了,我运行了jar并没有出错,因为它找到了嵌入在Hello.jar
的包括的mysql-connector-java-5.1.28-bin.jar
。
在Hello.jar中查找: vi Hello.jar
,您将看到对com/mysql/jdbc/stuff.class
许多引用
要在命令行上执行ant jar
以自动完成所有操作:将buildant.xml
重命名为build.xml
,并将目标名称从create_run_jar
为jar
。
然后,从MyProject
键入ant jar
和boom。 您的Jar已放入MyProject中。 您可以使用java -jar Hello.jar
调用它,并且一切正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.