在eclipse中运行java应用程序与直接运行它有何不同?

在eclipse中运行java应用程序与直接运行它有何不同?,java,eclipse,java-native-interface,Java,Eclipse,Java Native Interface,我正在开发一个java应用程序,它使用JNI的dll dll还在开发中,所以我想它有一些内存问题 当我使用eclipse的run对话框运行应用程序时,应用程序非常不稳定,很可能崩溃。当我从eclipse外部启动同一个应用程序时,该应用程序运行更加稳定。事故仍然存在,但明显减少 还有两个问题: 应用程序作为调试运行时有什么区别 dll分配的内存不是虚拟机的内存。因此,影响虚拟机内存的参数(如-Xmx)不会影响dll的内存分配。这句话对吗 提前感谢您的回答这并不能完全回答您的问题,但听起来与我从Ja

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

dll还在开发中,所以我想它有一些内存问题

当我使用eclipse的run对话框运行应用程序时,应用程序非常不稳定,很可能崩溃。当我从eclipse外部启动同一个应用程序时,该应用程序运行更加稳定。事故仍然存在,但明显减少

还有两个问题:

应用程序作为调试运行时有什么区别

dll分配的内存不是虚拟机的内存。因此,影响虚拟机内存的参数(如-Xmx)不会影响dll的内存分配。这句话对吗


提前感谢您的回答

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


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

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

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

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

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

您可以通过在启动时打印JRE信息来完成此操作:

System.out.println("Vendor: " + System.getProperty("java.vendor") + ", Version: " + System.getProperty("java.version"));
要在Eclipse中更改JRE版本,请转到:窗口->首选项->Java->已安装的JRE

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

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

您可以通过在启动时打印JRE信息来完成此操作:

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

要在Eclipse中更改JRE版本,请转到:窗口->首选项->Java->已安装的JRE

我认为allready也是如此。但我检查了这两个版本都是用JDK1.6.35运行的,我认为这也已经准备好了。但我检查了这两个版本是否都使用JDK1.6.35运行。不稳定意味着整个应用程序崩溃。我得到一条消息,Java运行时环境检测到一个致命错误。原因不同(异常\访问\违反未捕获\异常)。但这不是问题所在,dll是错误的。问题是,Eclipse启动应用程序是否与直接启动不同?(Java版本相同)不稳定意味着整个应用程序崩溃。我得到一条消息,Java运行时环境检测到一个致命错误。原因不同(异常\访问\违反未捕获\异常)。但这不是问题所在,dll是错误的。问题是,Eclipse启动应用程序是否与直接启动不同?(Java版本相同)