2012-01-09 3 views
3

Я пробовал несколько разных java-компиляторов за выходные и решил остаться с джаваком сегодня утром. Затем я приступил к очистке беспорядка, вызванного моим тестированием, и удалил все последние следы java и сделал новую «apt-get install openjdk-6-jdk» после autoremove и autoclean.Javac не установлен с openjdk-6-jdk

Следующая странность затем столкнулись:

[email protected]:~$ javac 
The program 'javac' can be found in the following packages: 
* openjdk-6-jdk 
* ecj 
* gcj-4.4-jdk 
* gcj-4.6-jdk 
* gcj-4.5-jdk 
* openjdk-7-jdk 
Try: sudo apt-get install <selected package> 

я Allready установлен OpenJDK, но я пробовал так или иначе получают:

[email protected]:~$ sudo apt-get install openjdk-6-jdk 
[sudo] password for tarskin: 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
openjdk-6-jdk is already the newest version. 
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 
[email protected]:~$ 

Я знаю, что я должен делать что-то глупое, но я понятия не имею, что, если кто-либо еще может дать указатель в правильном направлении, который будет очень оценен ...

Cheers

EDIT: нашел некоторые другие странные аспекты о «новом» экземпляре моего java-дистрибутива, он, похоже, не распознает, например, «Pattern» или «Matcher», который должен поступать из импорта регулярного выражения shrugs.

+3

Я подозреваю, что там, но не в вашем PATH. –

+0

Я сейчас спрячусь в углу в позоре ... Не следует ли это использовать? Любая идея, почему он не распознает пакет java.util.regex? –

+0

Что вы видите в своей среде IDE? –

ответ

3

Проверить /etc/alternatives и /usr/bin. Один или оба будут содержать ссылки на старые версии Java, которые вы установили. Когда эти ссылки сломаны, вы можете получить сообщение об ошибке выше.

Чтобы обновить ссылки после установки новой версии Java, попробуйте update-alternatives

+0

FS действительно не установил новую ссылку. Были ли у вас какие-либо идеи, почему мой импорт также не работает? –

+0

@Bas: откройте новый вопрос с версией Java, оператором импорта и сообщением об ошибке плюс ничего необычного в пути к классам (например, [Jakarta oro] (http://jakarta.apache.org/oro/)). –

+0

Я сделаю это утром, если у меня не будет какой-то формы прозрения, потому что я не хочу «спамить» эту доску глупыми вопросами. –

2

Во-первых, чтобы проверить, если Javac установлен попробовать искать этот файл: 1. найти JAVAC 2. или найти/-name Javac

А также вы можете проверить на этом сайте с instrucions о том, как установить Java на Ubuntu (я полагаю, вы на убунту):

http://openjdk.java.net/install/

вы также можете проверить: http://packages.ubuntu.com/hardy/i386/openjdk-6-jdk/filelist для файлов, установленных в PACAKGE, и вы можете заметить, что Javac должен быть установлен. Может быть, вам также нужно запустить: Откройте терминал и выполните следующую команду, чтобы установить OpenJDK 7.0 на Ubuntu Грез:

SUDO ДОПОЛНЕНО альтернатив --config ява

+0

Он установлен в/usr/lib/jvm/java-6-openjdk/bin/javac, но по какой-то причине установка не создала символическую ссылку в/usr/bin, как это должно было быть сделано, по крайней мере, я предполагаю вот где была ссылка, прежде чем я решил «очистить» мою систему. –

+0

проверить мои последние обновления в ответ. – Ivan

+0

В результате я вручную изменил свой путь, включив в него каталог установки openjdk, который, по крайней мере, означает, что javac теперь доступен везде, просто нужно получить другую ошибку (-ы), отсортированную там, где она не может импортировать определенные пакеты. –

9

TL; DR: установить Java-1.6.0-OpenJDK-разви

У меня была аналогичная проблема на Fedora, но используется rpm -q -l, чтобы отобразить содержимое (предварительно установленного) пакета java-1.6.0-openjdk и обнаружил, что он не включает javac. На самом деле это только JRE, а не JDK, что подразумевается инструкциями по установке на http://openjdk.java.net/install/. Чтобы получить javac, я установил java-1.6.0-openjdk-devel. Не совсем то, что я ожидал, потому что обычные соглашения об упаковке означали бы, что это пакет для разработки openjdk (т. Е. Работа с JVM), а не для разработки программ с ним.

В принципе, имена пакетов openjdk не соответствуют ни стандартным соглашениям Java (требовалось бы называть его JRE где-то), либо стандартными соглашениями об упаковке Linux (с использованием -devel указывает, что он используется для разработки пакета без самого развертывания).

Смежные вопросы