Нет com.sun.tools.javac в JDK7
Я использую JDK7 и Eclipse Indiago в 64-битной Windows 7. Я устанавливаю переменную среды 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? В чем проблема?
![enter image description here]()
Ответы
Ответ 1
Похоже, вы используете Eclipse. По умолчанию Eclipse импортирует JRE jars, а не JDK.
Решение 1:
- Перейдите к настройкам Eclipse (в Windows: Окно → Настройки)
- Откройте предпочтение Java → Установленные JRE
- Выберите свою JRE и нажмите править
- Используйте "Добавить внешние банки", чтобы включить tools.jar(находится в JDK_HOME/lib)
Решение 2:
Измените путь сборки проекта и добавьте внешнюю библиотеку: tools.jar, найденный в JDK_HOME/lib
Ответ 2
Вам лучше использовать API JavaCompiler, вместо того, чтобы обращаться непосредственно к вызову javac, который находится в tools.jar. API добавит это для вас, если вы его используете.
Ответ 3
javac находится в каталоге bin JDK, но не в ящике JRE.
У меня была аналогичная проблема, и оказалось, что по ошибке я установил переменную JAVA_HOME в JRE вместо JDK, т.е.
C:\Program Files\Java\jre1.8.0_60 instead of
C:\Program Files\Java\jdk1.8.0_60
Поскольку я "знал", что я скопировал правильное имя каталога, мне потребовались годы, чтобы увидеть эти два разных символа и устранить проблему.