[英]Difficulty specifying Java version to use in the command prompt
编写测试.DLL以使用JNI将C#代码包装到Java中时,在尝试运行Java项目成功编译.DLL后,我收到以下错误:
D:\>java Test1
Exception in thread "main" java.lang.UnsatisfiedLinkError: D://HeyLand.dll (D://HeyLand.dll is not a valid Win32 application. )
at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1018)
at java.lang.System.load(System.java:457)
at Test1.<clinit>(Test1.java:5)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
Could not find the main class: Test1. Program will exit.
我认为这是因为构建DLL的Visual Studio项目使用32位编译器,而我的Java版本具有64位编译器。
经过一些研究,我发现我需要在命令提示符下使用函数java -version:"1.8.0_25
来强制它使用我需要的版本,但是尽管我在PATH环境变量下都有这两个Java版本的位置,继续收到此错误:
D:\>java -version:"1.8.0_25" -version
Unable to locate JRE meeting specification "1.8.0_25"
我觉得这只是一个简单的输入错误,但我似乎无法弄清楚它是什么。
任何帮助是极大的赞赏!
问题更新:
我尝试进一步指定位置并收到相同的错误,尽管它绝对存在。
D:\>java -version:"D:\Program Files (x86)\Java\jre1.8.0_25\bin\java.exe" -version
Unable to locate JRE meeting specification "D:\Program Files (x86)\Java\jre1.8.0_25\bin\java.exe"
运行所需的Java版本的最简单方法是仅指定要运行的Java版本,而不在命令提示符下使用版本强制功能,如下所示:
D:\>"D:\Program Files (x86)\Java\jre1.8.0_25\bin\java.exe" -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b18)
Java HotSpot(TM) Client VM (build 25.25-b02, mixed mode, sharing)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.