繁体   English   中英

难以指定要在命令提示符下使用的Java版本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM