Javafx 64位应用程序只能分配1 GB Ram
这是一个问题,已经困扰了我们的客户一段时间了。尽管我们提供了一个64位JavaFX桌面应用程序,其JVM选项设置为:Javafx 64位应用程序只能分配1 GB Ram,java,memory,javafx,javafx-8,Java,Memory,Javafx,Javafx 8,这是一个问题,已经困扰了我们的客户一段时间了。尽管我们提供了一个64位JavaFX桌面应用程序,其JVM选项设置为: [JVMOptions] -Xmx5120m Runtime.getRuntime().maxMemory()虽然客户端有16 GB的可用RAM,但返回的内存大约只有1 GB 该应用程序通过提取存档和64位运行时进行部署,并使用fx:deployant任务构建。不幸的是,我们无法在任何时候重现这个错误 是否有其他可能限制Java应用程序可以使用的内存?客户使用某种虚拟化系统,如
[JVMOptions]
-Xmx5120m
Runtime.getRuntime().maxMemory()
虽然客户端有16 GB的可用RAM,但返回的内存大约只有1 GB
该应用程序通过提取存档和64位运行时进行部署,并使用fx:deployant任务构建。不幸的是,我们无法在任何时候重现这个错误
是否有其他可能限制Java应用程序可以使用的内存?客户使用某种虚拟化系统,如windows 7。这会对它产生影响吗?我还了解到,由于windows注册表项,是否可以限制应用程序可以使用的内存量
任何帮助都是非常感谢的,因为我们已经没有办法解决这个问题了
附加信息:为了收集更多信息,我们在应用程序中编写了一个诊断工具,它与apache诊断工具类似。这表明我们的-Xmx参数似乎被覆盖了:
diagnostics.vmInfoStartup:
-Djava.library.path=K:\PATH\APPLICATION\app;K:\PATH\APPLICATION\
-Djava.launcher.path=K:\PATH\APPLICATION\
-Dapp.preferences.id=FxApplication
-Xmx5120m
-Xmx1024m
但是第二个Xmx1024m限制来自哪里?用户启动从fx ant任务部署的EXE时没有任何其他参数。您是否有来自客户的“日志”文件,确认您的JVM确实使用了您希望使用的参数进行了调用?@GhostCat是的,我们有。已将相关日志信息添加到问题中。是否可以尝试使用
-XX:MaxHeapSize
和-XX:MaxMetaspaceSize
?看见另外,可能有一个环境变量覆盖了您的设置?请看Xmx,您正在设置可用的最大值,可能这确实受到citrix环境的限制。如果您碰巧可以访问该环境,那么应该检查与exe启动器行为相同的正常java进程。