2013-07-10 151 views
2

我需要帮助,包括导入的jar文件到Linux中的Java程序中。下面是程序:Java:将包含的Jar文件添加到Linux中创建的Jar文件中

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文件加入到classpath中:

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运行?

回答

1

试试这个

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

当您使用-classpath它失去的类路径中的当前目录,因此需要在classpath中.以及明确

+0

伟大的,那有效。谢谢 – user1518963

0

如何,包括项目的罐子到您可运行的jar:

我会逐步指导您使用Eclipse版本:3.7.2在Ubuntu 12.10上运行。我还会告诉你如何制作build.xml,这样你就可以从命令行执行ant jar并创建你的JAR并将其他导入的JAR解压到它。

基本上你要求Eclipse构建build.xml,将你的库导入到你的jar中。

  1. 火了Eclipse和作出新的Java项目,创建一个新包“mypackage中”,添加您的主类:Runner将这个代码在那里。

    enter image description here

  2. 现在包括mysql-connector-java-5.1.28-bin.jarfrom Oracle这使我们能够编写Java连接到MySQL数据库。通过右键单击项目 - >属性 - > java构建路径 - >添加外部Jar - >选择mysql-connector-java-5.1.28-bin.jar。

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

  4. 在Eclipse中转到FileExportJavaRunnable Jar File。你会看到这个对话框:

    enter image description here

    确保建立了“另存为Ant脚本”复选框。这就是为什么你可以使用命令行稍后执行ant jar

  5. 然后到终端,并期待在ant脚本:

    enter image description here

所以你看,我跑的罐子,并没有错误,因为它发现了包括mysql-connector-java-5.1.28-bin.jar嵌入在Hello.jar内。

往里Hello.jar:vi Hello.jar,你会看到许多人提到com/mysql/jdbc/stuff.class

要在命令行做ant jar自动完成这一切:重命名buildant.xmlbuild.xml,并更改目标的名字从create_run_jarjar

然后,从MyProject内输入ant jar和繁荣。你的MyProject里有你的jar。你可以使用java -jar Hello.jar来调用它,它可以工作。

相关问题