我正在开发一个使用JNI的dll的java应用程序。
dll仍在开发中,所以我猜它有一些内存问题。
当我运行我的应用程序时,使用eclipse的Run对话框,应用程序非常不稳定并且很可能崩溃。当我从eclipse外部启动相同的应用程序时,应用程序运行得更加稳定。仍然有崩溃,但显着减少。
还有两个问题:
当应用程序作为Debug运行时有什么区别?
dll分配的内存不是虚拟机的内存。因此,影响虚拟机内存的参数(如-Xmx)不会影响dll的内存分配。这个陈述是否正确?
提前感谢您的回复
答案 0 :(得分:1)
这并没有完全回答你的问题,但这听起来类似于我从Java运行本机代码时遇到的问题。
如果以一种方式运行应用程序似乎比另一种方式更稳定,则可能在系统上安装了多个JVM,而Eclipse正在使用与从命令行使用的方法不同的JVM。
答案 1 :(得分:0)
请详细说明“不稳定”。您收到哪种错误?
正如codebox所建议的,我还要确保它与运行的JVM版本相同。
您可以通过在启动时打印JRE信息来执行此操作:
System.out.println("Vendor: " + System.getProperty("java.vendor") + ", Version: " + System.getProperty("java.version"));
要在Eclipse中更改JRE版本,请转到:Window - >偏好 - > Java - >已安装的JRE