当前位置: 首页 > 知识库问答 >
问题:

在特定版本的java下运行java程序

东郭俊楠
2023-03-14

linux计算机上安装的java版本

sudo更新备选方案--配置java

/usr/lib/jvm/java-17-oracle/bin/java

/usr/lib/jvm/java-17-oracle/bin/java

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

我如何制作一个文件. sh,它在java版本1.8下运行我的程序,而不改变java的标准版本

我的脚本无法运行

/usr/lib/jvm/java-1.8.0-openjdk-amd64/jre/--exec-java/home/alex/xmind/xmind\u-amd64/xmind

谢谢

共有2个答案

计承德
2023-03-14

最短的路。声明JAVA\u HOME从JAVA\u HOME调用JAVA

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
$JAVA_HOME/jre/bin/java /path/to/your/program
梁丘赞
2023-03-14

要做到这一点,您需要了解如何从shell调用程序。

如果您的技术称为acme,位于 /usr/foo/acme-app/bin/acme,您应该将其添加到称为PATH的特殊变量环境中

export ACME_HOME=/usr/foo/acme-app/bin
export PATH=$PATH:$ACME_HOME/bin

在那之后,acme可以用于外壳

acme --help

一些安装程序在安装步骤中执行此操作,但在某些情况下您需要手动执行。

在你的情况下有一个特定的版本

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
export PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

之后,您可以使用

java -version

有时由于您以前的安装,PATH很脏。我的意思是在PATH中有几个java版本。您可以检查

echo $PATH

如果路径中有多个java版本,只需删除它们并导出新路径。下面是一个干净的最小路径示例

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

和其他不太干净的

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-17-oracle/bin:/usr/lib/jvm/java-8-openjdk-amd64:/usr/lib/jvm/java5

在这种情况下,您只需要修复PATH并仅添加一个java版本

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
export PATH=$PATH:$JAVA_HOME/bin

注意:此操作在外壳打开时有效。如果路径已关闭或位于另一个shell中,则会恢复路径。要永久设置此选项,请选中此选项:如何在Linux/Unix上永久设置$PATH

 类似资料:
  • 这是在Windows10操作系统上的Cygwin BASH中运行的Gradle5.2.1。 关于让Gradle使用某个JDK和JRE有几个答案。我的系统使用的是Java9(JAVA_HOME指向它的JDK,路径的第一个条目指向它的\bin目录)...但是对于使用TestFX的特定项目,我必须使用Java8。 我花了几个小时试图让事情运转起来,但我总是遇到这个问题。产出: null 在那个地方确实有

  • 问题内容: 我需要帮助在特定时间(如下午2点)在服务器上运行Java程序(以索引新文件)。 有人告诉我Java有一些叫做Job的东西,但我不知道该如何使用。我尝试了这个: 但是有了这个程序仍在运行。 如何在指定时间运行程序? 问题答案: 有一个名为Quartz的API ,您的程序可以在其中调度“作业”,并在该时刻运行它。 在给出示例之前,请尝试使用此链接。 编辑:首先,您必须创建一个实现org.q

  • 问题内容: 我有一个Web应用程序,每小时与中央数据库同步四次。该过程通常需要2分钟。我想将此进程作为线程在X:55,X:10,X:25和X:40运行,以便用户知道在X:00,X:15,X:30和X:45他们有数据库的干净副本。这只是管理期望。我已经通过了执行器,但是调度是通过它完成的,我认为不能保证以小时为单位的实际运行时间。我可以使用第一个延迟来启动,以便第一个接近启动时间和每15分钟的计划,

  • 问题内容: 我需要解决JDK 1.5中的Java错误,该错误已在1.6中修复。我正在使用以下条件: 这对其他JVM有用吗?有更好的方法来检查吗? 问题答案: 是每个JVM中都存在的系统属性。有两种可能的格式: Java的8或降低:1.6.0_23,1.7.0,1.7.0_80,1.8.0_211 Java的9或更高:9.0.1,11.0.4,12,12.0.1 这是提取主要版本的技巧:如果它是版本

  • 例如,我想编写一个Java程序,在每天上午12点打印“Hello World”,如何使用Quartz调度器实现这一点? 这样地?我应该把打印“hello world”方法放在哪里?

  • 首先也是最重要的是,我对Java知之甚少,对SWT更是知之甚少,所以我就到此为止。今天早些时候,我试着运行我在上找到的这个简单程序https://mkyong.com/swt/swt-hello-world-example 以下是代码: 当我运行它时,会出现以下错误: 我从中了解到的是,SWT正在用Java11编译,而它应该用Java8编译,但是——这是一个很大的BUT——我没有Java11我删除