我正在运行Windows 7 64位和Java 1.8。当我尝试调用JNI_CreateJavaVM时,程序退出。它没有"崩溃",实际上是调用exit()。 (!!)
我已经研究过,并发现了其他讨论:
Invoking Java from C++: how to catch/detect a fatal JVM error?
JNI_CreateJavaVM() terminates with exit code 1
他们没有解决问题。
因此,如果环境设置不正确,程序将消失。我的任务是创建一个必须使用Java lib执行的应用程序。如果用户环境(我无法控制)没有设置好,或者稍后修改,那么程序就会消失,并且#34;在那里我没有能力做任何防御性编码!
当一些甲骨文家伙认为这是一个好主意时,会出现什么类型的精神障碍?
Java安装自己并使用目录C:\ PROGRAMDATA \ ORACLE \ JAVA \ JAVAPATH修改路径...并且当前版本的Java有一堆快捷方式(" C:\ Program文件(x86)\ Java \ jre1.8.0_31 \ bin"在我的例子中)。如果我必须修改路径以指向JVM dll的位置(方便地不在同一位置,但在子目录中),稍后更新Java并更改这些快捷方式,路径仍将指向旧的DLL。
有没有人找到办法实现这一目标?我的意思是强有力的?换句话说,虽然仍然是一个优秀的程序员?因为JNI / JVM环境肯定会阻止你这样做。