我需要帮助将导入的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文件包含到我的runnable jar中,以便可以使用java -jar myjar.jar运行它?
发布于 2013-07-11 06:21:12
尝尝这个
java -classpath ./db2jcc_license_cu.jar:./db2jcc4.jar:. CreateCoffees使用-classpath时,它会从类路径中丢失当前目录,因此它还需要在类路径中显式地使用.
发布于 2013-12-30 07:45:48
如何将项目的jar包含到可运行的jar中:
我将使用运行在Ubuntu 12.10上的Eclipse版本3.7.2一步一步地向您介绍这一过程。我还将向您展示如何创建build.xml,以便您可以从命令行执行ant jar,并使用解压到其中的其他导入jar创建您的jar。
基本上,您要求Eclipse构造build.xml,为您将库导入到jar中。
Runner将此代码放入其中。
mysql-connector-java-5.1.28-bin.jar from Oracle,它使我们能够编写Java来连接到MySQL数据库。要执行此操作,请右键单击项目->属性-> java build path -> Add External Jar ->选择javaEclipse中的
File -> Export -> Java -> Runnable Jar File。您将看到此对话框:
确保选中“另存为ant script”复选框。这就是为什么您以后可以使用命令行执行ant jar。
然后,

所以您可以看到,我运行了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调用它,它就能正常工作。
https://stackoverflow.com/questions/17581949
复制相似问题