12

我在 Windows 7 64 位中使用 JDK7 和 Eclipse Indiago。我将环境变量 JAVA_HOME 设置为 F:\JDK7 并在路径中添加 %JAVA_HOME%\bin 。这是我的示例代码:

com.sun.tools.javac.Main m1 = new com.sun.tools.javac.Main();
m1.compile(source);

我得到的错误:

com.sun.tools 类型无法解析为类型

为什么没有 com.sun.tools ?有什么问题 ?

在此处输入图像描述

4

3 回答 3

28

看起来您正在使用 Eclipse。默认情况下,Eclipse 只导入 JRE jar,而不是来自 JDK 的。

解决方案1:

  1. 转到 Eclipse 首选项(在 Windows 上:Window-->Preferences)
  2. 打开首选项 Java-->Installed JREs
  3. 选择您的 JRE 并按编辑
  4. 使用“添加外部 jars”来包含 tools.jar(在 JDK_HOME/lib 中找到)

解决方案2:

编辑您的项目构建路径并添加一个外部库:在 JDK_HOME/lib 中找到的 tools.jar

于 2012-04-25T11:48:51.187 回答
8

您最好使用JavaCompiler API,而不是尝试直接调用 tools.jar 中的 javac。如果您使用它,API 将为您添加它。

于 2012-04-25T11:47:24.250 回答
1

javac 在 JDK bin 目录中,但不在 JRE bin 中。

我有一个类似的问题,结果我错误地将我的 JAVA_HOME 变量设置为 JRE 而不是 JDK,即

C:\Program Files\Java\jre1.8.0_60 instead of 
C:\Program Files\Java\jdk1.8.0_60

因为我“知道”我复制了正确的目录名称,所以我花了很长时间才看到这两个不同的字符并解决了问题。

于 2015-09-07T10:44:03.370 回答