钻石速记语法不起作用javac

时间:2014-03-20 09:04:51

标签: java eclipse java-7 javac diamond-operator

编译时:

LinkedBlockingDeque<Integer> q = new LinkedBlockingDeque<>();
在Eclipse Java EE Kepler版本中,一切正常,但是一旦我尝试在终端中编译相同的程序

  

javac myProgram.java

在命令行中,我收到&#34;非法启动类型&#34;错误,在&lt;&gt;

我知道Diamond Shorthand附带了java 7,那么为什么终端会使用java 6的javac而不是7?我该如何永久纠正?我在Linux上,Mint 15。

运行javac -version显示了这个

~ $ javac -version
    javac 1.6.0_27

3 个答案:

答案 0 :(得分:2)

显然你安装了两个不同版本的java。在Eclipse中,您可以指定JDK的位置 - 设置为1.7。但是在终端中,PATH变量包含(第一个)JDK 1.6的位置。看起来您正在运行linux / unix,请尝试打印PATH变量:

$ echo $PATH

您将在那里看到JDK 1.6的路径; JDK 1.7的路径也可能存在,但是在JDK 1.6路径之后。编辑~/.profile文件并相应地编辑路径 - 删除JDK 1.6并添加JDK 1.7。

另一方面,如果在系统级别设置了JDK 1.6的路径(例如在/etc/profile中),那么最简单的方法是将此行添加到~/.profile文件中:

export PATH="/path/to/jdk1.7/bin:$PATH"

编辑此文件后,注销并重新登录。

答案 1 :(得分:0)

您尚未将Java 7 bin目录添加到PATH环境变量中。或者也许Java 6也存在于之前 Java 7路径。

答案 2 :(得分:-1)

在eclipse中..转到项目属性 - &gt; Java Compiler并选择所需的java编译器版本。