繁体   English   中英

Java:将包含的Jar文件添加到Linux中创建的Jar文件中

[英]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。

  1. 启动Eclipse并创建一个新的Java项目,创建一个新的包“ mypackage”,并添加您的主类: Runner将此代码放入其中。

    在此处输入图片说明

  2. 现在包括来自Oraclemysql-connector-java-5.1.28-bin.jar 它使我们能够编写Java以连接到MySQL数据库。 通过右键单击项目->属性-> Java构建路径->添加外部Jar->选择mysql-connector-java-5.1.28-bin.jar来执行此操作。

  3. 在eclipse中运行该程序,它应该运行,并告诉您用户名/密码无效,这意味着已使用jar正确配置了Eclipse。

  4. 在Eclipse中去File - > Export - > Java - > Runnable Jar File 您将看到以下对话框:

    在此处输入图片说明

    确保设置“另存为蚂蚁脚本”复选框。 这就是它的原因,因此您以后可以使用命令行来做一个ant jar

  5. 然后转到终端并查看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_jarjar

然后,从MyProject键入ant jar和boom。 您的Jar已放入MyProject中。 您可以使用java -jar Hello.jar调用它,并且一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM