【问题标题】:How do we decide which java version is used to compile a version of library in maven?我们如何决定使用哪个 java 版本来编译 maven 中的库版本?
【发布时间】:2014-11-30 10:31:30
【问题描述】:

我的本​​地设置已配置所有 java 6。我需要 catalina jar 文件。所以我拿了最新的——

http://mvnrepository.com/artifact/org.apache.tomcat/tomcat-catalina/8.0.15

但这给了我以下错误/警告

警告:javalangObject.class(javalang:Object.class):主要版本 51 比 50 新,这是此编译器支持的最高主要版本。

构建失败。

唯一可行的方法是 catalina.jar 是使用 java 7 编译的,而我的设置是使用 java6。我通过使用旧版本的库确认了这种情况。

http://mvnrepository.com/artifact/org.apache.tomcat/catalina/6.0.35

我想知道我们如何知道哪个库版本是用哪个版本的 java 编译的。特别是在 Maven 中,我没有看到任何此类信息。

【问题讨论】:

    标签: java maven tomcat catalina


    【解决方案1】:

    主版本 51 表示它是用 Java 7 编译的。主版本 52 表示它是用 Java 8 编译的。Java 6 的主版本是 50。

    您可以从从 Maven 下载的 jar 中提取一些类文件。然后检查类的主要版本如下:

    $ javap -verbose someclass.class | grep -i 专业

    这将指示用于编译的 javac 版本。

    【讨论】:

    • "Java 6 的主要版本为 6。"
    • @NipunTalukdar 这可能是一种方法,但在我从 maven 下载库之前有没有一种方法可以让我知道?
    • @AniketThakur 我想,没有罐子就无法知道这一点。
    猜你喜欢
    • 1970-01-01
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 2014-03-28
    相关资源
    最近更新 更多