1

当我编译这个:

LinkedBlockingDeque<Integer> q = new LinkedBlockingDeque<>();

在 Eclipse Java EE Kepler 版本中,一切正常,但是一旦我尝试在终端中编译相同的程序

javac myProgram.java

在命令行中,我在 <> 上收到“非法类型开始”错误

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

运行 javac -version 揭示了这一点

~ $ javac -version
    javac 1.6.0_27
4

3 回答 3

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 的路径是在系统级别设置的(例如 in /etc/profile),那么最简单的做法是将这一行添加到您的~/.profile文件中:

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

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

于 2014-03-20T09:09:51.837 回答
0

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

于 2014-03-20T09:06:30.670 回答
-1

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

于 2017-11-15T19:38:42.490 回答