AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 101776
Accepted
Mark
Mark
Asked: 2010-01-12 17:21:41 +0800 CST2010-01-12 17:21:41 +0800 CST 2010-01-12 17:21:41 +0800 CST

在 solaris 上用 MySQL jdbc 构建一个 jar

  • 772

我正在构建一个使用 JDBC 连接到 MySQL 的 java 应用程序。我有一个 ant 脚本,它编译我的代码,然后将它与 log4j、junit、libshout-java 和 mysql jdbc 驱动程序一起打包到一个可执行 jar 中。这一切在 ubuntu 9.10 上运行良好,我的代码连接到 mysql,然后我们就走了。

但是,我的生产环境将是 solaris(我的开发盒是 ubuntu),当我在那里构建和运行它时,我遇到了以下错误。

17 [main] DEBUG com.radiobusi.ShoutGen.ParseConfig  - [SQL, SELECT * FROM RadioBusi.RadioBusi_song JOIN RadioBusi.RadioBusi_playlist WHERE RadioBusi_playlist.Name = 'Placebo 2';]
18 [main] DEBUG com.radiobusi.ShoutGen.ParseConfig  - this is able to be broken up[SQL, SELECT * FROM RadioBusi.RadioBusi_song JOIN RadioBusi.RadioBusi_playlist WHERE RadioBusi_playlist.Name = 'Placebo 2';]
78 [main] ERROR com.radiobusi.ShoutGen  - An error occured instantiating the class ShoutGen
java.lang.ExceptionInInitializerError
        at com.mysql.jdbc.Util.stackTraceToString(Util.java:351)
        at com.mysql.jdbc.Util.<clinit>(Util.java:116)
        at com.mysql.jdbc.NonRegisteringDriver.parseURL(NonRegisteringDriver.java:672)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:277)
        at java.sql.DriverManager.getConnection(DriverManager.java:582)
        at java.sql.DriverManager.getConnection(DriverManager.java:185)
        at com.radiobusi.ShoutGen.PlayList.<init>(Unknown Source)
        at com.radiobusi.ShoutGen.ShoutGen.<init>(Unknown Source)
        at com.radiobusi.ShoutGen.ShoutGen.main(Unknown Source)
Caused by: java.lang.RuntimeException: Can't load resource bundle due to underlying exception java.util.MissingResourceException: Can't find bundle for base name com.mysql.jdbc.LocalizedErrorMessages, locale en_AU
        at com.mysql.jdbc.Messages.<clinit>(Messages.java:60)
        ... 9 more
Caused by: java.util.MissingResourceException: Can't find bundle for base name com.mysql.jdbc.LocalizedErrorMessages, locale en_AU
        at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1521)
        at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1260)
        at java.util.ResourceBundle.getBundle(ResourceBundle.java:715)
        at com.mysql.jdbc.Messages.<clinit>(Messages.java:58)
        ... 9 more
Exception in thread "main" java.lang.NullPointerException
        at com.radiobusi.ShoutGen.ShoutGen.main(Unknown Source)

我的 mysql 数据库语言环境在 solaris 上是 en_US,但我的 ubuntu mysql 数据库也是 en_US。

有人有什么想法吗?

我不确定还需要什么其他信息,所以如果您想了解更多信息,请在评论中告诉我。

包装好的罐子

junit-4.8.1.jar
libshout.jar
log4j-1.2.15.jar
mysql-5.1.6.jar

munderwo@opensolaris:~/ShoutGen-Java$ uname -a
SunOS opensolaris 5.11 snv_111b i86pc i386 i86pc Solaris

MySQL 版本:MySQL 5.1.30

干杯

标记

PS这是来自https://stackoverflow.com/questions/2036507/building-a-jar-with-mysql-jdbc-on-solaris的交叉帖子,因为它有点模糊了编程系统管理员之间的界限。

更新 1:

以下 ant 目标是我打包 jar 的方式。这意味着 mysql jar 实际上在 jar 中,应该可以自动使用

<target name="jar">
        <!-- Capture the path as a delimited property using the refid attribute -->
        <property name="myclasspath" refid="classpath"/>
        <!-- Emit the property to the ant console -->
        <echo message="Classpath = ${myclasspath}"/>
        <mkdir dir="${jar.dir}"/>
        <jar destfile="${dest.file}" basedir="${classes.dir}">
            <manifest>
                <attribute name="Main-Class" value="com.radiobusi.ShoutGen.ShoutGen"/>
            </manifest>
            <zipfileset src="${lib.dir}/junit-4.8.1.jar" includes="**/*.class"/>
            <zipfileset src="${lib.dir}/libshout.jar" includes="**/*.class"/>
            <zipfileset src="${lib.dir}/log4j-1.2.15.jar" includes="**/*.class"/>
            <zipfileset src="${lib.dir}/mysql-5.1.6.jar" includes="**/*.class"/>
        </jar>
    </target>
java mysql jdbc opensolaris
  • 2 2 个回答
  • 887 Views

2 个回答

  • Voted
  1. Christian
    2010-01-12T23:51:04+08:002010-01-12T23:51:04+08:00

    确保您的 jar 使用的是 ubuntu 盒子上的打包库。只需将文件系统中的库临时移动到另一个位置。当您的 jar 运行时,您可以确保使用 jar 中的库。

    你是如何从你的 jar 中引用外部库的?您是否将它们添加到清单文件的 Class-Path 中?当您这样做时,您使用的是相对路径还是绝对路径?

    • 0
  2. Best Answer
    Mark
    2010-01-13T17:16:19+08:002010-01-13T17:16:19+08:00

    我认为这个惊喜的原因,惊喜,用户错误:)

    我从源代码的 lib 目录中删除了任何 mysql jdbc,然后将 opensolaris 附带的 mysql jdbc 连接器(看起来来自 sun studio)放在 java 的 lib/ext 中。一旦我这样做了,这一切似乎都奏效了。仔细检查后,我想我的类路径中可能仍然有 ubuntu mysql JDBC 驱动程序,而且很可能在跨平台 jar 之前。所以我怀疑这是问题所在。

    感谢你的帮助!

    标记。

    • 0

相关问题

  • 如何以尽可能少的依赖项在 FreeBSD 上安装 Java JRE

  • 从 MySQL 迁移到 SQL Server 的最佳方法或工具

  • 您如何跟踪和调试 mySQL 性能问题?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • 如何选择 MySQL 数据库引擎

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve