如何指定特定Java版本运行应用?含多版本环境下pdfsam运行需求
在特定Java版本下运行应用的解决方案
通用场景:如何指定Java版本运行程序
日常开发中,切换Java版本运行程序主要有这几个靠谱的方式:
- 直接调用目标版本的java可执行文件:找到你要使用的Java版本安装目录下的
java命令,用绝对路径启动应用。比如你的OpenJDK安装在/opt/openjdk-3,那启动命令就是:/opt/openjdk-3/bin/java -jar your-application.jar - 临时设置JAVA_HOME环境变量:在启动命令前临时指定
JAVA_HOME为目标Java的安装路径,这样当前命令会话会使用这个版本,不会改动系统默认配置。举个例子:JAVA_HOME=/opt/openjdk-3 /path/to/your-app-start-script - 用版本管理工具快速切换:Linux下可以用
update-alternatives,跨平台可以用jenv这类工具,能临时切换当前Shell的Java版本,用完再切回默认就行。比如用update-alternatives的操作:# 临时切换到OpenJDK 3 sudo update-alternatives --set java /opt/openjdk-3/bin/java # 运行你的应用 java -jar pdfsam.jar # 切回默认的Java 9 sudo update-alternatives --set java /opt/java-9/bin/java
你的具体需求:用OpenJDK 3运行pdfsam且保持默认Java 9
既然要保留系统默认的Java 9配置,最稳妥的方法就是不改动全局设置,只在启动pdfsam时指定版本:
情况1:pdfsam是通过jar包启动
假设你的OpenJDK 3的java命令路径是/opt/openjdk-3/bin/java,直接用这个路径启动pdfsam的jar包:
/opt/openjdk-3/bin/java -jar pdfsam.jar
情况2:pdfsam有系统级启动脚本(比如直接输pdfsam就能启动)
在启动前临时设置JAVA_HOME为OpenJDK 3的安装目录,这样脚本会使用这个版本的Java:
JAVA_HOME=/opt/openjdk-3 pdfsam
这样操作后,系统默认的Java 9完全不受影响,只有这次启动的pdfsam会用OpenJDK 3运行。
内容的提问来源于stack exchange,提问作者Socrates
相关产品推荐
相关产品推荐

