简体   繁体   English

使用完整的Java路径从命令提示符执行可运行的jar

[英]Executing runnable jar from command prompt with complete Java path

To execute a jar command is >java -jar jar-file-name.jar 要执行jar命令,请> java -jar jar-file-name.jar

It works fine if JAVA_HOME version matches with the JDK version using which jar file was build. 如果JAVA_HOME版本与使用哪个jar文件构建的JDK版本匹配,则效果很好。 Otherwise it gives below error. 否则会给出以下错误。

Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:626)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:247)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)

I have got a third party jar built in JDK 1.8 upon which I dont have any control to change the JDK verison and rebuilt. 我已经在JDK 1.8中构建了一个第三方jar,在该jar上我没有任何控制权来更改JDK版本并进行重建。

I have got a unix machine in whih JAVA_HOME is set to JDK 1.5. 我在JAVA_HOME设置为JDK 1.5的情况下有一个Unix机器。 and my application one of several other applications deployed in same machine. 和我的应用程序部署在同一台计算机上的其他几个应用程序之一。 So I cant change the JAVA_HOME to point to JDK 1.8 which may break other applications. 因此,我无法将JAVA_HOME更改为指向JDK 1.8,这可能会破坏其他应用程序。

I know the path where JDK 1.8 is installed in the system. 我知道系统中JDK 1.8的安装路径。

Is there a way to refer JDK complete path (which is not set as JAVA_HOME) and execute the jar. 有没有一种方法可以引用JDK完整路径(未设置为JAVA_HOME)并执行jar。

Any help would be highly appreciated. 任何帮助将不胜感激。

/path/to/jdk/bin/java -jar jar-file-name.jar

so as i understand you do have 2 different java versions on your system and the 1.5 version is used as your default java. 因此,据我了解,您的系统上确实有2个不同的Java版本,而1.5版本用作您的默认Java。 but for your new jar you need 1.8 to start? 但是对于新罐子,您需要1.8才能启动?

you should use the absolute path to your 1.8 java in order to start it, like this: 您应该使用1.8 Java的绝对路径来启动它,如下所示:

/opt/java/1_8/bin/java -jar jar-file-name.jar / opt / java / 1_8 / bin / java -jar jar-file-name.jar

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM