运行 Linux 命令行上 Java 的特定版本

Running a Specific Version of Java on the Linux Command Line

我有一段旧代码 (gwt 1.7) 需要 Java 1.7 到 运行 的 32 位版本。我在这里找到了我认为的解决方案: 但是当我实际尝试使用完整路径时,我得到了错误

/usr/lib/jvm/java-7-oracle/jre/bin/java: No such file or directory

我对路径进行了双重和三次检查,它是正确的。 'java' 文件具有执行权限。我不确定还有什么问题。将它与我安装的一些较新的 Java 版本进行比较,我能看到的唯一区别是 java 的较新版本将该文件编码为 'shared library' 而在 1.7 中它是一个 'executable'。我错过了什么?

仅供参考:如果我运行一个显示JRE/bin目录内容的命令输出是

/usr/lib/jvm/java-7-oracle/jre/bin$ ls -la
total 432
drwxr-xr-x 2 root root   4096 May  7 11:28 .
drwxr-xr-x 5 root root   4096 May  7 11:28 ..
lrwxrwxrwx 1 root root      8 May  7 11:28 ControlPanel -> jcontrol
-rwxr-xr-x 1 root root   5714 May  7 11:28 java
-rwxr-xr-x 1 root root  16246 May  7 11:28 java_vm
-rwxr-xr-x 1 root root 113254 May  7 11:28 javaws
-rwxr-xr-x 1 root root   6391 May  7 11:28 jcontrol
-rwxr-xr-x 1 root root   5873 May  7 11:28 keytool
-rwxr-xr-x 1 root root   6013 May  7 11:28 orbd
-rwxr-xr-x 1 root root   5893 May  7 11:28 pack200
-rwxr-xr-x 1 root root   5981 May  7 11:28 policytool
-rwxr-xr-x 1 root root   5865 May  7 11:28 rmid
-rwxr-xr-x 1 root root   5877 May  7 11:28 rmiregistry
-rwxr-xr-x 1 root root   5893 May  7 11:28 servertool
-rwxr-xr-x 1 root root   6045 May  7 11:28 tnameserv
-rwxr-xr-x 1 root root 219908 May  7 11:28 unpack200

尝试 运行 您的 java 命令作为 sudo。您可能试图在未经许可的情况下从用户帐户执行。

鉴于这不是由权限问题引起的,这可能是缺少 32 位运行时的结果,详见 here