【问题标题】:How to create a bat file for a Java program using J Connector and other jar files?如何使用 J Connector 和其他 jar 文件为 Java 程序创建 bat 文件?
【发布时间】:2017-04-02 19:36:31
【问题描述】:

我编写了一个使用 Blue J 作为环境的 java 程序。现在这个程序使用了一些外部库(jar 文件),例如用于连接 MySQL 数据库的 J 连接器的 jar 文件以及其他 2 个 jar 文件。在 Blue J 中,我只是将 jar 文件添加到我的项目中,当我在 Blue J 中启动程序时,一切正常。 但现在我想创建一个 .bat 文件,以便可以在其他计算机上运行该程序。 我知道通常我只需写入批处理文件即可使用批处理文件启动编译程序

java myApplication

但是我怎样才能“告诉”批处理文件它也应该使用上面提到的 jar 文件呢?当我只使用 bat 文件上方的代码时,看不到它们,并且出现异常“没有为 jdbc:mysql 找到合适的驱动程序 ...”,这显然意味着他在查找 jar 文件时遇到了问题(因为,如我说,在 Blue J 中启动程序可以正常工作)。 我对创建批处理文件很陌生。 你能告诉我怎样才能让它工作吗?

感谢和问候, 丹尼尔

【问题讨论】:

    标签: java batch-file jdbc jar mysql-connector


    【解决方案1】:

    你只需要设置类路径:

    java -cp jarfile1.jar;jarfile2.jar;jarfile3.jar;yourmainjar.jar MainClass
    

    -cp 中列出了运行应用程序所需的所有 JAR(包括主应用程序 JAR)。在 Windows 上,用分号 ; 分隔它们,在类 Unix 系统上,分隔符是冒号 :

    如果您使用 Maven 构建您的程序,您可以组装一个 fat JAR:这是一个 JAR,它与您的应用程序类一起包含它使用的 JAR 中的所有类。 Maven Assembly 插件可用于构建这样的 JAR:http://maven.apache.org/plugins/maven-assembly-plugin/ 例如,它的 jar-with-dependencies http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html#jar-with-dependencies 可能有用。

    要从一个胖 JAR 启动你的程序,你只需这样做

    java -jar the-fat-jar.jar
    

    【讨论】:

    • 非常感谢,现在可以使用了! :) 另外我刚刚注意到,在 Blue J 中,我可以选择将项目导出为 jar 文件,其中包含所有外部库 - 这使得变薄变得更加容易:)
    • @DanielBK 这样做并不总是一个好主意。例如,如果您需要多个 JDBC 驱动程序,服务定义文件通常没有正确合并(如果完全合并的话),然后突然有些驱动程序不再自动加载;其他依赖服务定义的库也是如此。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 2013-09-28
    • 1970-01-01
    相关资源
    最近更新 更多