我正在为我的Java程序制作一个小型启动程序,这个想法是我可以在调用Java之前设置内存需求,相关库以及类似的东西。
然而,我越来越多地发现似乎并没有从任何方面调用Java的方法。
我应该如何能够从C ++中可靠地调用java程序?或者就此而言,从何而来?我可以让我的程序尝试所有四种可能的方法,但如果它们出现空的话呢?
提前致谢。
答案 0 :(得分:2)
首先,强烈建议使用一种可用的脚本语言来查找JRE位置,设置内存要求和类似内容。由于BAT文件的语言相对较差,您可以使用VBS或JScript并使用名为cscript
的实用程序运行它们。
关于JRE的事实。
通常,JRE可以在注册表中找到。例如,在我的机器上,我可以看到以下条目。
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.6.0_26
可能你有更新的安装...无论如何检查Java安装的条目:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
在我的例子中,我有条目{26A24AE4-039D-4CA4-87B4-2F83216012FF}
,其中名为InstallLocation
的密钥包含Java Home的路径。
下一步是检查Java home环境变量。
最后一种方法是在%ProgramFiles%
中执行搜索答案 1 :(得分:1)
在安装程序中尝试所有方法,也许您找到多个JRE,可能没有。然后显示检测到的JRE并允许选择要使用的用户。用户也可以指向JRE,尤其是当安装程序没有找到它时。
答案 2 :(得分:0)
Eclipse使用C shim(eclipse.exe)来生成JVM。您可以查看该源代码并进行调整。