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

Difficulty specifying Java version to use in the command prompt

在使用 JNI 编写测试 .DLL 以将 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 来强制它使用我需要的版本,但是尽管我有两个版本的位置 Java在我的 PATH 环境变量下,我不断收到此错误:

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)