Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用旧版本的Java1.6运行.jar1.7程序?_Java_Eclipse_Jar - Fatal编程技术网

如何使用旧版本的Java1.6运行.jar1.7程序?

如何使用旧版本的Java1.6运行.jar1.7程序?,java,eclipse,jar,Java,Eclipse,Jar,我有一个code.jar在1.7版java中运行得很好,但是当使用另一台linux版本为1.6的计算机时,它给了我一个错误,我怎么能在1.6版中运行它呢?我认为你不能用较低的版本运行较高版本的类 另一种方法可能是将集合编译为1.6 例如: javac yourFile.java -target 1.6 如果代码未使用较旧的Java兼容标志编译,您将无法在1.6上运行它。在eclipse中使用Java 6构建项目,您将需要下载Java 1.6 JRE,然后让eclipse指向1.6 JRE,请参

我有一个code.jar在1.7版java中运行得很好,但是当使用另一台linux版本为1.6的计算机时,它给了我一个错误,我怎么能在1.6版中运行它呢?

我认为你不能用较低的版本运行较高版本的类

另一种方法可能是将集合编译为1.6

例如:

javac yourFile.java -target 1.6

如果代码未使用较旧的Java兼容标志编译,您将无法在1.6上运行它。

在eclipse中使用Java 6构建项目,您将需要下载Java 1.6 JRE,然后让eclipse指向1.6 JRE,请参阅:

现在右键单击您的项目->属性,单击Java编译器,取消选中“启用项目特定设置”,单击“配置工作区设置”,并选择1.6作为编译器遵从性级别

如果要再次导出项目,那么新的jar应该可以工作

希望这有帮助

调用
javac
时使用


如果按照大多数其他回复中的建议,仅指定了
-target
选项,则1.7 SDK将发出有关
-bootclasspath
的警告。该选项需要目标JRE版本的
rt.jar
(注意不是JDK)。它允许编译器检查引用核心Java SE的代码的类、方法和属性是否实际存在于
rt.jar
中。这对于确保兼容性非常重要。

我在Eclipse中找到了一个解决方案

如果转到项目并右键单击以访问属性,则会有一个名为Java编译器的选项卡。如果启用项目特定属性并取消选中JDK compliance下的复选框,则可以将源代码兼容性和.class文件兼容性更改为1.6


这应该可以解决您的问题,并且生成的.jar文件应该可以在这两个设备上工作。我通过将一个文件从1.8移动到1.7,并在我的Raspberry Pi上进行测试来测试这一点,我的Raspberry Pi具有OpenJDK 1.7,它工作得非常好。我希望这有帮助。

有什么错误?很可能您需要最新的JDK来运行它,线程“main”java.lang.UnsupportedClassVersionError:tes:Unsupported major.minor version 51.0在java.lang.ClassLoader.defineClass1(本机方法)在java.lang.ClassLoader.DefineClassClass(ClassLoader.java:634)在java.security.SecureClassLoader.DefineClassClass(SecureClassLoader.java:142)位于java.net.URLClassLoader.defineClass(URLClassLoader.java:277)位于java.net.URLClassLoader.access$000(URLClassLoader.java:73)位于java.net.URLClassLoader$1.run(URLClassLoader.java:212)……找不到主类:tes.Program将退出。上述注释中的错误类似于此。您需要使用JDK 1.6创建.class文件,或在编译时使用
-target=1.6
选项(但如果您使用的是Java7功能,则没有帮助)回到Java 1.4的旧时代,您可以使用它在1.4 JRE上运行1.5代码。太糟糕了,它不再工作了……解决方案是什么?我如何更改代码以在旧版本中运行它?首先确保code.jar中的源代码可以用Java 1.6编译。然后,当您用Java C编译它时,使用-target 1.6标志.wh我可以写javac-source 1.6 code.jar吗?@user1475288:它不是源代码,而是目标代码。请阅读我答案中提供的链接。但是如果我的文件是“yourfile.jar”我可以使用javac file.jar-target 1.6吗?我不认为你可以用它来对付jar。我使用eclipse编写了代码,然后我做了导出,这样我就可以在eclipse之外使用它,但是java的版本在我的计算机上是1.7