【问题标题】:Java Application disappears when using a native library使用本机库时 Java 应用程序消失
【发布时间】:2013-02-13 02:21:14
【问题描述】:

我正在运行一个 Java 应用程序,它通过本机库连接到 Player/Stage(机器人模拟程序)。如果我在同一台 Ubuntu PC 上运行 Java 应用程序和 Player/Stage,一切正常。但是,如果我在 Ubuntu VM 上运行 Java 应用程序和 Player/Stage,则会出现错误。 Java 应用程序正在关闭且没有任何错误消息。 GUI 消失,播放器/舞台仍在运行。当 Java 应用程序尝试连接到 Player/Stage 时,就会出现问题。当我在几台 Ubuntu PC 上运行 Java 应用程序和 Player/Stage 时,也会发生同样的错误。

之后 Ubuntu 想要发送一个错误报告,上面写着:

崩溃的程序似乎使用了第三方或本地库:

/usr/local/lib/liblibrary.so.0.0.0 /home/user/workspace/liblibrary.so

强烈建议检查问题是否仍然存在 那些第一。

这个错误根本没有帮助,因为我需要本地库来连接这两个程序。

是否有可能读取错误消息? java sun和openjdk之间有什么区别吗?

编辑:解决方案有点具体。这里的问题是堆栈大小。因为图书馆需要一个比普通图书馆更大的图书馆。所以,我需要添加命令-Xss16m 以获得更高的堆栈大小。我可以在 Eclipse 中的 Window->Preferences->Java->Installed JREs 中设置此命令,然后采用实际的 JRE->edit->then Default VM 参数。这现在适用于我的 Ubuntu 发行版,但不适用于 Windows 7 x32。还有其他方法可以设置 Windows 的堆栈大小吗?

【问题讨论】:

    标签: java native virtual-machine


    【解决方案1】:

    本机库崩溃(很可能是段错误)。联系该库的创建者,了解发生了什么。

    要检查的一个明显的事情是库的位数 - 它是 32 位还是 64 位,您的操作系统是什么?除此之外,您还受图书馆创建者的摆布。

    【讨论】:

    • 奇怪的是库并没有在同一台PC上崩溃。该库适用于 x32 系统,我只运行 x32 系统。那不是问题。
    猜你喜欢
    • 2011-01-20
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多