Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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
在maven和/或eclipse中强制实现java 6源代码兼容性_Java_Eclipse_Maven - Fatal编程技术网

在maven和/或eclipse中强制实现java 6源代码兼容性

在maven和/或eclipse中强制实现java 6源代码兼容性,java,eclipse,maven,Java,Eclipse,Maven,方法java.lang.Long.compare(x,y)存在于Java7中,但不存在于Java6中。因此,如果将使用此方法的代码部署到运行Java6的服务器上,显然会导致NoSuchMethodException 然而,无论是Maven还是Eclipse都发现了这个错误,尽管在Eclipse中将源代码符合性级别设置为1.6,并且Maven编译器源代码和目标代码设置为1.6 除了将我的JRE降级到6之外,有没有办法在Eclipse中强制实现Java 6的完全合规性?有办法获得Java源代码,但最

方法java.lang.Long.compare(x,y)存在于Java7中,但不存在于Java6中。因此,如果将使用此方法的代码部署到运行Java6的服务器上,显然会导致NoSuchMethodException

然而,无论是Maven还是Eclipse都发现了这个错误,尽管在Eclipse中将源代码符合性级别设置为1.6,并且Maven编译器源代码和目标代码设置为1.6

除了将我的JRE降级到6之外,有没有办法在Eclipse中强制实现Java 6的完全合规性?

有办法获得Java源代码,但最简单的办法是在开发过程中创建工件(JAR等)时使用最低要求的JDK版本

->在开发和发布期间使用JDK 6

但是,请注意,Oracle的JDK 6已经到了生命的尽头,如果您没有与Oracle签订特殊的支持合同(或使用其他供应商提供的JDK),强烈建议您升级到Java 7

注意:源级别仅确保您使用该版本支持的语法构造,目标级别仅确保生成的类文件符合指定版本的字节码。

有一种方法可以获取Java源代码,但最简单的方法是在创建工件时使用最低要求的JDK版本(罐子等)/在开发过程中

->在开发和发布期间使用JDK 6

但是,请注意,Oracle的JDK 6已经到了生命的尽头,如果您没有与Oracle签订特殊的支持合同(或使用其他供应商提供的JDK),强烈建议您升级到Java 7


注意:源级别仅确保使用该版本支持的语法结构,目标级别仅确保生成的类文件符合指定版本的字节码。

这是我在POM中添加的内容

<project    xmlns="http://maven.apache.org/POM/4.0.0" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >


  ...

  <properties>
    <java-version>1.6</java-version>
  </properties>

  ...

  <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                <source>${java-version}</source>
                <target>${java-version}</target>
                <compilerArgument>-Xlint:all</compilerArgument>
                <showWarnings>true</showWarnings>
                <showDeprecation>true</showDeprecation>
            </configuration>
        </plugin>
    </plugins>
  </build>
</project>

...
1.6
...
org.apache.maven.plugins
maven编译器插件
2.5.1
${java版本}
${java版本}
-Xlint:全部
符合事实的
符合事实的
一旦在我的POM中定义了它,我右键单击该项目并转到Maven>Update项目。这将把POM中的任何设置应用到eclipse项目,以确保两者同步


就JDK而言,我使用最新的JDK,但编译到较低版本。我们目前使用的是JDK 7,但编译到6。这使您能够充分利用这两个方面的优点,即编译器仍将使用与版本6兼容的7引入的任何优化。

这是我在POM中添加的内容

<project    xmlns="http://maven.apache.org/POM/4.0.0" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >


  ...

  <properties>
    <java-version>1.6</java-version>
  </properties>

  ...

  <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.5.1</version>
            <configuration>
                <source>${java-version}</source>
                <target>${java-version}</target>
                <compilerArgument>-Xlint:all</compilerArgument>
                <showWarnings>true</showWarnings>
                <showDeprecation>true</showDeprecation>
            </configuration>
        </plugin>
    </plugins>
  </build>
</project>

...
1.6
...
org.apache.maven.plugins
maven编译器插件
2.5.1
${java版本}
${java版本}
-Xlint:全部
符合事实的
符合事实的
一旦在我的POM中定义了它,我右键单击该项目并转到Maven>Update项目。这将把POM中的任何设置应用到eclipse项目,以确保两者同步

就JDK而言,我使用最新的JDK,但编译到较低版本。我们目前使用的是JDK 7,但编译到6。这两个方面都让您受益匪浅,因为编译器仍将使用7中引入的与版本6兼容的任何优化。

这正是引入的原因:

Animal Sniffer提供了一些工具来帮助验证使用较新的JDK/API编译的类是否与较旧的JDK/API兼容

这正是引入该系统的原因:

Animal Sniffer提供了一些工具来帮助验证使用较新的JDK/API编译的类是否与较旧的JDK/API兼容