В Solaris 10 я использую JDK 1.5.0_22, и когда я запускаю любой из исполняемых файлов JDK (javac
, native2ascii
, javadoc
и т. Д.) В каталоге JDK / bin, для которого требуется tools.jar
чтобы запустить, я получаю эту ошибку (запустить с аргументами и без):
Исключение в потоке "main" java.lang.NoClassDefFoundError:
ком / ВС / инструменты / Javac / Main
Исполняемые файлы JRE в каталоге bin, для которых не требуется tools.jar
, работают нормально (java, keytool и т. Д.).
Да, tools.jar
находится в каталоге JDK / lib, с разрешениями все в порядке, и он не поврежден - я могу просматривать содержимое tools.jar
и извлекать его.
Я попытался установить JAVA_HOME
, и добавление каталога JDK / bin в PATH - установка / удаление этих переменных среды не имеет значения. Я все еще получаю ту же ошибку.
Это единственное, что я обнаружил, что он избавляется от NoClassDefFoundError
и позволяет запускать исполняемый файл JDK / bin (см. Ниже, запускается из каталога JDK / bin):
./native2ascii -J-Xbootclasspath/a:../lib/tools.jar
Поэтому, если я добавлю -J-Xbootclasspath/a:../lib/tools.jar
к любому исполняемому файлу JDK / bin, например javac
, javadoc
, native2ascii
, они запустятся. В противном случае они не делают.
Есть идеи как исправить? Все исполняемые файлы JDK / bin работают нормально на других моих системах Solaris 10, и ни на одной из них не установлено ни JAVA_HOME
vars, ни JDK / bin в PATH.