我正在尝试创建一个Java程序,但我想让它由C ++打开。
我一直在使用C ++
system("java -jar MMQ4.jar");
但是它要求用户将C:\ Program Files \ Java \ jre7 \ bin \添加到他们的PATH环境变量
那么,他们是使用C ++运行Java程序的另一种方式吗?
答案 0 :(得分:1)
运行java文件不需要用户向环境变量添加内容,这简直是错误的,因为Java安装程序已经自动执行了此操作。
如果您无法在不向环境添加内容的情况下运行java-binary,那么您的JRE就会出错,需要重新安装。请不要相信你在互联网论坛上看到的一切,这个陈述是一个非常古老的神话,大约5年前JDK版本的确如此,但在此之后的每一个......不是那么多
答案 1 :(得分:0)
一个解决方案,在我看来并不好:
system("export LD_LIBRARY_PATH=\"<java_path>\" && java -jar MMQ4.jar");
此解决方案适用于unix s.o。
对于Windows,请查看here。
顺便说一句,如果我明白你的意图是什么,你应该使用:
fork
exec
wait
而不是系统。
const int pid = fork();
execv("java", "-jar MMQ4.jar"");
通过这种方式,您可以参考PID的过程并在需要时将其终止。
答案 2 :(得分:0)
您是否尝试将-classpath
选项用于Java解释器。自从我使用Java以来已经有一段时间了,但在过去,这本来有用。