编译时:
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
答案 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编译器版本。