Java—使用另一个jvm运行类的命令行

Java—使用另一个jvm运行类的命令行,java,Java,我的机器上默认有Java1.8.0131,但也有Java9,所以我可以用jdk-9运行编译类吗?有没有可能发生这样的事情: java -v path/to/jdk-9 myClass 谢谢java命令实际上调用了JVM。JVM启动,读取您的类,并运行您告诉它运行的内容 有无方法告诉“启动”JVM实际使用不同的JVMjava不是某种“稍后”调用二进制文件的包装器。启动JVM的已经是二进制文件了 换句话说:你所要求的是不可能的。一个简单的解决方法是在命令行上定义“别名”,比如java-8

我的机器上默认有Java1.8.0131,但也有Java9,所以我可以用jdk-9运行编译类吗?有没有可能发生这样的事情:

    java -v path/to/jdk-9 myClass 

谢谢java命令实际上调用了JVM。JVM启动,读取您的类,并运行您告诉它运行的内容

方法告诉“启动”JVM实际使用不同的JVM
java
不是某种“稍后”调用二进制文件的包装器。启动JVM的已经是二进制文件了


换句话说:你所要求的是不可能的。一个简单的解决方法是在命令行上定义“别名”,比如java-8启动java8安装,java-9指向其他安装

默认情况下,java命令调用已安装的java版本,可通过以下命令进行检查:

一种方法是更新java:

sudo update-alternatives --config java.  
上述命令的O/p:

  Selection    Path                                     Priority   Status
------------------------------------------------------------
 0            /usr/lib/jvm/java-8-oracle/jre/bin/java   1081      auto mode
* 1            /usr/lib/jvm/java-8-oracle/jre/bin/java   1081      manual mode


 Press <enter> to keep the current choice[*], or type selection number: 
选择路径优先级状态
------------------------------------------------------------
0/usr/lib/jvm/java-8-oracle/jre/bin/java 1081自动模式
*1/usr/lib/jvm/java-8-oracle/jre/bin/java 1081手动模式
按可保留当前选项[*],或类型选择编号:
在您的情况下,Java9也将出现。更新java版本并运行java命令

或者您可以直接调用您的java9脚本,您可以找到${java9 Installation Directory}/jre/bin/java-v类


PS:上面对命令的描述基于ubuntu。

否。但是您可以使用标准方式:
/path/to/jdk-9/bin/java MyClass
否,此命令不可能。但是您可以使用Java9安装附带的java命令运行该类。如果我没有弄错的话,您还可以将默认的java版本更改为始终使用jdk-9您使用的是Windows Mac还是Linux