Java 在项目jar文件中导出jdbc

Java 在项目jar文件中导出jdbc,java,jdbc,jar,manifest,manifest.mf,Java,Jdbc,Jar,Manifest,Manifest.mf,我有一个JAVA程序,它连接到MySQL并执行一些更新任务。现在我想将应用程序导出为包含JDBC包的jar文件。我正在为以下所有命令执行类似于pwd的操作:/home/tnp/UpdateServer\u SRC/bin/: 到目前为止,我退出执行,因为它每30分钟执行一次while循环 现在,创建jar文件: 嗯。Jar文件已创建。让我们试着运行它: $ java -jar sth.jar no main manifest attribute, in sth.jar 哦,pwd不在我当前的

我有一个JAVA程序,它连接到MySQL并执行一些更新任务。现在我想将应用程序导出为包含JDBC包的jar文件。我正在为以下所有命令执行类似于pwd的操作:/home/tnp/UpdateServer\u SRC/bin/:

到目前为止,我退出执行,因为它每30分钟执行一次while循环

现在,创建jar文件:

嗯。Jar文件已创建。让我们试着运行它:

$ java -jar sth.jar 
no main manifest attribute, in sth.jar
哦,pwd不在我当前的课程路径中。让我再试一次:

$ java -cp sth.jar update.server.Main
Latest: 12177
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:190)
        at update.server.UpdateLast5.run(UpdateLast5.java:18)
        at java.lang.Thread.run(Thread.java:724)
Exception in thread "Thread-0" java.lang.NullPointerException
        at update.server.UpdateLast5.run(UpdateLast5.java:40)
        at java.lang.Thread.run(Thread.java:724)
然后抛出这个stacktrace。我在上面看到:

对于JAR,-cp和-classpath参数以及%classpath% 忽略环境变量

我需要手动修改MANIFET.MF文件,然后重新创建jar。但是上面链接的答案指出类路径应该是相对于我自己的jar文件sth.jar的,并且没有提到如何处理绑定的jar文件


如何在包中导入JDBC,以便生成的jar文件能够正常工作。任何帮助都将不胜感激。

在生成的JAR根目录中包含所需的JAR,并在运行时加载它们,这意味着您需要一个类加载器来处理此问题

大多数IDE都为您这样做,例如在Eclipse中,您只需告诉它在JAR中打包所需的库


Ant也可以这样做。

在生成的JAR根目录中包含所需的JAR,并在运行时加载它们,这意味着您需要一个类加载器来处理这个问题

大多数IDE都为您这样做,例如在Eclipse中,您只需告诉它在JAR中打包所需的库


Ant也可以这样做。

使用以下清单文件解决了当前的问题:

Manifest-Version: 1.0
Created-By: 1.7.0_25 (Oracle Corporation)
Main-Class: update.server.Main
Class-Path: jdbc.jar

并将jdbc.jar放在与我的sth.jar相同的目录中。

通过使用以下清单文件解决了当前的问题:

Manifest-Version: 1.0
Created-By: 1.7.0_25 (Oracle Corporation)
Main-Class: update.server.Main
Class-Path: jdbc.jar

并将jdbc.jar放在与sth.jar相同的目录中。

为什么不使用Eclipse?它可以很容易地做到这一点。为什么不使用Eclipse呢?它可以很容易做到这一点。
Manifest-Version: 1.0
Created-By: 1.7.0_25 (Oracle Corporation)
Main-Class: update.server.Main
Class-Path: jdbc.jar