首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java:在linux中将包含的Jar文件添加到创建的Jar文件

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

Stack Overflow用户
提问于 2013-07-11 06:20:05
回答 2查看 3.8K关注 0票数 2

我需要帮助将导入的jar文件包含到我在Linux中的java程序中。下面是程序:

代码语言:javascript
复制
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文件:

代码语言:javascript
复制
db2jcc_license_cu.jar
db2jcc4.jar

我将这些jar文件放在与CreateCoffees.java文件相同的目录中,然后像这样编译并运行它:

代码语言:javascript
复制
javac CreateCoffees.java 
java CreateCoffees

但是我得到了这个错误

代码语言:javascript
复制
ClassNotFoundException: com.ibm.db2.jcc.DB2Driver

然后我尝试了"-classpath“选项

代码语言:javascript
复制
javac -classpath ./db2jcc_license_cu.jar:./db2jcc4.jar CreateCoffees.java
java -classpath ./db2jcc_license_cu.jar:./db2jcc4.jar CreateCoffees

但我得到了这个

代码语言:javascript
复制
Exception in thread "main" java.lang.NoClassDefFoundError: CreateCoffees
Caused by: java.lang.ClassNotFoundException: CreateCoffees

如何将这些jar文件包含到我的runnable jar中,以便可以使用java -jar myjar.jar运行它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-11 06:21:12

尝尝这个

代码语言:javascript
复制
java -classpath ./db2jcc_license_cu.jar:./db2jcc4.jar:. CreateCoffees

使用-classpath时,它会从类路径中丢失当前目录,因此它还需要在类路径中显式地使用.

票数 1
EN

Stack Overflow用户

发布于 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中。

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

  1. 现在包括了mysql-connector-java-5.1.28-bin.jar from Oracle,它使我们能够编写Java来连接到MySQL数据库。要执行此操作,请右键单击项目->属性-> java build path -> Add External Jar ->选择java

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

Eclipse中的

  1. 转到File -> Export -> Java -> Runnable Jar File。您将看到此对话框:

确保选中“另存为ant script”复选框。这就是为什么您以后可以使用命令行执行ant jar。

然后,

  1. 转到终端并查看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调用它,它就能正常工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17581949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档