ubuntu 如何在特定的Java版本上运行应用程序?

izkcnapc  于 2023-04-29  发布在  Java
关注(0)|答案(2)|浏览(197)

如何运行特定Java版本的应用程序?我有三个Java版本:

myuser@mysystem:~$ sudo update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      auto mode
* 1            /opt/jdk-9.0.4/bin/java                          1         manual mode
  2            /opt/jdk1.8.0_162/bin/java                       1         manual mode
  3            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      manual mode

我将Java 9设置为默认值,我希望保持这种方式。尽管如此,名为pdfsam的应用程序似乎不能在Java 9中正常工作。使用openjdk运行它需要什么命令(选项3)?

wd2eg0qa

wd2eg0qa1#

可以使用安装的绝对路径运行java
这将是您的默认/usr/bin/java安装

java -version

若要更改它,请使用绝对路径

/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -version

如果您没有直接运行java命令,请尝试设置JAVA_HOME变量:

JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre/" pdfsam
wb1gzix0

wb1gzix02#

因为我需要一个特定版本的Java用于特定的应用程序(“Jitsi桌面”不再支持,并与JDK 8一起工作)。获得此特定版本的唯一方法是下载它,解压缩并使应用程序使用它。在我的例子中,JAVA_HOME环境变量不起作用,因为JDK没有真正安装在系统中。
所以我找到了这个简单的方法:安装所需的JDK版本并执行特定的应用程序,指定使用哪个版本的JDK,并临时修改PATH环境变量。
在我的例子中(用户必须有权限读取和执行JDK):

user@host:~$ PATH=/data/noinstall/jdk8u332-b09/bin/:$PATH jitsi

注意:在冒号之前修改JDK bin目录的路径
所以PATH只在执行jitsi时修改。在执行期间或执行之后的其他地方,PATH保持不变。
由于update-alternatives --config java在全局范围内改变了JDK,我认为这个解决方案使安装在同一系统、开发人员等上的许多不同版本的JDK的用例更加舒适。
基于这个主题和我的直觉。

相关问题