我有一个jar文件在某些特性只属于Java8
(用于ex lambda表达式),所以它是在Java8
中编译的。同一jar具有属于Java7
和Java8
的一些特性。现在,我希望当用户在Java7
中运行这个jar时,Java7
相关类应该可以工作,因为他/她只想要在Java7
上工作的功能。如果他/她想要与Java8相关的功能,他将使用Java8
运行它。
不幸的是,多版本JAR不允许这样做,它们是Java9中的一个新特性,但是多版本JAR不会回到Java7,但是它们将适用于未来的Java版本。
多释放罐
Java8引入了重要的新语言特性,如lambda表达式。 语言中的这些变化是否伴随着编译字节码中的重大变化,从而阻止它在不使用某些反向翻译器的情况下在Java7虚拟机上运行?
你能用Java8编译一个类,然后在Java7中使用它吗? 如你所见,有一些自相矛盾的答案…那么,真相是什么呢?;-)
如果第一点是真的,Java8应用程序将在Java7服务器支持上部署和执行?比如Tomcat 8还是Wildfly?
如果我没有理解错的话,Java10的二进制形式与Java9是100%相同的,所以它不会产生任何问题。 我的假设正确吗?
我有Java8SDK和运行时,以及一个只使用Java7个功能的项目。我想知道我是否可以设置intellij来构建一个Java-7级的jar,从命令行肯定可以做到这一点? 到目前为止,我已经尝试过简单地将项目语言级别设置为7作为实验,但这显然是不够的,也不是我真正需要的。 我在SO上也看到过这个问题:"Intellij IDEA使用java7编译器编译,当我已经将其配置为使用Java6",但我的项目
问题内容: 我有一个名为helloworld.jar的JAR文件。为了运行它,我在命令行窗口中执行以下命令: 这可以正常工作,但是我如何双击执行它?我需要安装任何软件吗? 问题答案: 最简单的方法可能是升级或重新安装Java Runtime Environment(JRE)。 或这个: 打开Windows资源管理器,从“工具”中选择“文件夹选项…” 单击文件类型选项卡,向下滚动并选择JAR文件类型