【问题标题】:Diamond shorthand syntax not working javac菱形速记语法不起作用javac
【发布时间】:2014-03-20 09:04:51
【问题描述】:

当我编译这个时:

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

在 Eclipse Java EE Kepler 版本中,一切正常,但是一旦我尝试使用

在终端中编译相同的程序

javac myProgram.java

在命令行中,我在

上收到“非法类型开始”错误

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

运行 javac -version 揭示了这一点

~ $ javac -version
    javac 1.6.0_27

【问题讨论】:

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


【解决方案1】:

显然您安装了两个不同版本的 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"

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

【讨论】:

  • 我将该行添加到 ~/.profile 并在我再次登录后有效,感谢您的详细回复
【解决方案2】:

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

【讨论】:

  • java -version 表示我使用的是 1.7.0_21 版本。如何将 javac 添加到我的 PATH 环境变量中?
  • 您必须将JDKbin 目录而不是JRE 添加到PATH 变量中。
【解决方案3】:

在eclipse中..进入项目属性->Java编译器,选择需要的java编译器版本。

【讨论】:

  • OP 对 Eclipse 没有问题,但询问的是 javac
猜你喜欢
  • 2012-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多