Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:在linux中将包含的Jar文件添加到已创建的Jar文件中_Java_Classpath - Fatal编程技术网

Java:在linux中将包含的Jar文件添加到已创建的Jar文件中

Java:在linux中将包含的Jar文件添加到已创建的Jar文件中,java,classpath,Java,Classpath,我需要帮助将导入的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.ClassNotF

我需要帮助将导入的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文件与我的createCoffee.java文件放在同一个目录中,然后像这样编译和运行它:

javac CreateCoffees.java 
java CreateCoffees
但我犯了这个错误

ClassNotFoundException: com.ibm.db2.jcc.DB2Driver
然后我尝试了“-classpath”选项

但我明白了

Exception in thread "main" java.lang.NoClassDefFoundError: CreateCoffees
Caused by: java.lang.ClassNotFoundException: CreateCoffees
如何将这些jar文件包含到my runnable jar中,以便可以使用
java-jar myjar.jar
运行它?

试试这个

java -classpath ./db2jcc_license_cu.jar:./db2jcc4.jar:. CreateCoffees

当您使用
-classpath
时,它会从classpath中释放当前目录,因此它需要在classpath中明确地
如何将项目的jar包含到可运行jar中:

我将用运行在Ubuntu12.10上的Eclipse版本:3.7.2一步一步地介绍它。我还将向您展示如何制作
build.xml
,以便您可以从命令行执行
ant jar
,并使用提取到其中的其他导入jar创建jar

基本上,您要求Eclipse构造build.xml,以便为您将库导入到jar中

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

  • 现在包括
    mysql-connector-java-5.1.28-bin.jar
    ,它使我们能够编写java来连接mysql数据库。通过右键单击项目->属性->java构建路径->添加外部Jar->选择mysql-connector-java-5.1.28-bin.Jar来实现这一点

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

  • 在Eclipse中转到
    文件
    ->
    导出
    ->
    Java
    ->
    可运行Jar文件
    。您将看到以下对话框:

    确保设置“另存为ant脚本”复选框。这就是为什么以后可以使用命令行来执行
    antjar

  • 然后转到终端并查看ant脚本:

  • 你看,我运行了jar,它没有出错,因为它找到了内嵌在
    Hello.jar
    中的
    mysql-connector-java-5.1.28-bin.jar

    查看Hello.jar内部:
    vi Hello.jar
    您将看到许多对
    com/mysql/jdbc/stuff.class

    在命令行上执行
    antjar
    自动执行所有这些操作:将
    buildant.xml
    重命名为
    build.xml
    ,并将目标名称从
    create\u run\u jar
    更改为
    jar

    然后,从
    MyProject
    中键入
    antjar
    并打开。你已经把你的罐子放在我的项目里了。您可以使用
    java-jar Hello.jar
    调用它,一切正常

    java -classpath ./db2jcc_license_cu.jar:./db2jcc4.jar:. CreateCoffees