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

什么版本的javac构建了我的jar?

申屠黎昕
2023-03-14
问题内容

我如何知道用来构建jar的Java编译器的版本?我有一个jar文件,它可以在三个JDK中的任何一个中构建。我们需要确切地知道哪一个,以便我们证明兼容性。编译器版本是否嵌入在类文件或jar中的某个位置?


问题答案:

您不一定无法从JAR文件本身中分辨出来。

下载十六进制编辑器,然后在JAR中打开一个类文件,并查看字节偏移量4到7。内置了版本信息。

http://en.wikipedia.org/wiki/Java_class_file

注意:如以下评论中所述,

这些字节告诉您该类是针对哪个版本编译的,而不是哪个版本对其进行编译。



 类似资料:
  • 我在制作机器人时就面临这个问题。我正确安装了java jdk。

  • 我试图在ubuntu服务器上安装npm和nodejs,但注意到不知何故,在运行后,我最终得到了两个版本。我知道这一点,因为当我运行时,它会返回,而当我运行时,它返回。在我继续之前,我想把这个设置好。有人明白我为什么会有两个版本吗?我的理解是,安装nodejs也应该安装npm,但这只允许我以更高的权限运行npm,我知道我不应该这样做。谁能让我知道我做错了什么?谢谢你。

  • 我对GitHub操作(以及一般的持续集成)是新手。我刚刚阅读了使用Node.js with GitHub操作,我在Node.js工作流模板中找到了这个片段: 上面提到 该模板包括一个矩阵策略,它用三个Node.js版本构建和测试代码:8.x、10.x和12.x。“x”是一个通配符,它与某个版本可用的最新次要版本和补丁版本相匹配。数组中指定的每个Node.js版本都创建一个运行相同步骤的作业。 我的

  • 几年前我安装了Java版本10.0.2,但为了特定的目的需要将其更新到11.0.2(不是最新的版本13.0.2,我需要它是11.0.2)。 下载JDK-11.0.2之后,我打开了环境变量窗口,并进行了如下更改。 添加新路径

  • 我知道有文档或发行说明,但我有没有办法找到cloud foundry在任何环境变量中使用的tomcat版本? 我在/actuator/env中看不到它

  • 我最近下载了与NetBeans捆绑在一起的JDK1.8.0.006。然后我发现我一直在用Java1.7开发的JavaFx项目不会用Java1.8编译,所以我把JDK降到了1.7。但我还是无法让它运行/编译。我得到了这个错误: 我真的被困住了,非常感谢您的帮助。