当前位置: 首页 > 面试题库 >

定位不同版本的JRE

祝高阳
2023-03-14
问题内容

我正在Windows Surface Pro上测试Java。表面Pro拥有的Java 7更新55,但 具备安装JDK。

我使用命令行在MacBook上编译了一个程序javac。MacBook具有Java 8 Update 5,并且包含JDK(显然是因为我在MBP上编译)。

将程序从MackBook移到Surface Pro时,出现以下错误。在这里,“移动程序”意味着将两个*.class文件复制到新机器上并尝试执行字节码。

java.lang.UnsupportedClassVersionError: HttpsTest : Unsupported major.minor version 52.

尝试使用目标信息进行编译会导致:

$ javac -target 1.7 HttpsTest.java SSLSocketFactoryEx.java
javac: target release 1.7 conflicts with default source release 1.8

javac -help没有列出任何选项来控制已编译程序的版本信息(除外target,该选项似乎不起作用)。

如何为JRE的较低版本编译源文件?在这种情况下,我的目标是Java 8计算机上的Java 7。


问题答案:

在命令行中,将您的调用更改为:

javac -source 1.7 -target 1.7 HttpsTest.java SSLSocketFactoryEx.java

javac的文档(针对JDK
8)在此处。

javac的文档(用于JDK 9)在此处。

注意:在JDK 9中,-target被–release替换。



 类似资料:
  • 问题内容: 我们正在使用JBoss 4.2.3,该版本又带有Hibernate的3.2.1.ga版本。我想使用支持JPA 2.0的Hibernate 3.5.1-FINAL。我一直在尝试通过将自己的hibernatejar放入WEB-INF / lib文件夹并在jboss- web.xml中为WAR创建自己的类加载器来使其工作 我也尝试过: 但是我遇到了很多问题,这是我目前坚持的例外情况: 由于最

  • 问题内容: 是否可以在同一台计算机上安装不同版本的NodeJS? 问题答案: 您可以使用几种节点管理器来实现此目的,但是最受欢迎的是: 虚拟机 ñ

  • 我使用cordova进行应用程序开发,并有一些使用cordova 3.5构建的项目。确切版本为: cordova安装在我的系统中是全局性的,但现在我认为这是一个坏主意。我真的应该有本地的、特定于项目的安装,这样旧项目可以用原始版本维护,新项目可以用最新版本启动。 解决此问题的计划如下: 首先删除全局安装的cordova: 然后将特定的cordova版本添加到旧项目中 最后为新项目添加最新cordo

  • 这是使用两个不同文本查找元素的正确方法吗?因为该元素在两个不同的环境中有两个不同的文本。 .find()。withText()

  • 今天我和jenv一起玩,将Java1.8设置为全局版本,将1.7设置为本地项目。此后,mvn命令在全局位置显示为java版本12- 而Java版本显示如预期- 我试图卸载和安装maven通过sdkman再次,在Mac上。虽然它没有新鲜下载。我仍然得到同样的错误。 我该怎么解决这个问题?

  • 你的個人帳號是在 GitBook 上的個人識別,可以是許多出版單位的成員(個人帳號可以歸屬在多個出版單位之下),不管是免費或付費用戶皆可。 個人帳號 每一位使用 GitBook 的用戶都有一個個人帳號: 不管免費或付費使用,都可以建置不限數量的公開書籍專案與協作者。 免費方案可以建置一本私密書籍專案。 每月支付$4.99美金的付費方案,可以擁有五個私密專案,以及不限數量的協作者。 每月支付$14.