1

我正在开发一个 java 应用程序,它使用一个使用 JNI 的 dll。

dll仍在开发中,所以我猜它有一些内存问题。

当我使用 Eclipse 的运行对话框运行我的应用程序时,应用程序非常不稳定并且很可能崩溃。当我从 Eclipse 外部启动相同的应用程序时,应用程序运行更加稳定。仍然有崩溃,但要少得多。

还有两个问题:

当应用程序作为 Debug 运行时有什么区别?

dll分配的内存不是虚拟机的内存。因此影响虚拟机内存的参数(如 -Xmx)不会影响 dll 的内存分配。这个说法正确吗?

提前感谢您的回复

4

2 回答 2

1

这并不能完全回答您的问题,但听起来类似于我在从 Java 运行本机代码时遇到的问题。

如果以一种方式运行应用程序似乎比另一种方式更稳定,那么您的系统上可能安装了多个 JVM,而 Eclipse 使用的 JVM 与从命令行使用的方式不同。

于 2012-09-11T07:32:26.340 回答
0

请详细说明“不稳定”。您收到哪些类型的错误?

正如 codebox 所建议的,我还将确保它与运行的 JVM 版本相同。

您可以通过在启动时打印 JRE 信息来做到这一点:

System.out.println("Vendor: " + System.getProperty("java.vendor") + ", Version: " + System.getProperty("java.version"));

要在 Eclipse 中更改 JRE 版本,请转到:Window -> Preferences -> Java -> Installed JREs

于 2012-09-11T07:56:15.500 回答