apt-get install openjdk-7-jdk nie instaluje javac. Czemu?

24
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

Potem biegnę sudo apt-get install openjdk-7-jdki wszystko działa. Ale javacnadal nie istnieje i pojawia się taki sam błąd jak powyżej. To samo z openjdk-6-jdk. Czemu?

Travis Webb
źródło

Odpowiedzi:

10

Tak długo, jak instalacja zakończy się bez błędów, w systemie jest wykonywalny plik javac; z jakiegoś powodu po prostu nie został poprawnie połączony z / usr / bin. sudo ln -s /usr/lib/jvm/java-7-openjdk/bin/javac /usr/bin/javacutworzy ten link i powinien rozwiązać problem.

BinaryMage
źródło
6
Co jeśli nie zostanie poprawnie zainstalowany. Nie widzę javaca w samym katalogu.
Veer Shrivastav
23

Prawidłowym sposobem na skonfigurowanie Debiana / Ubuntu, na który javacwskazuje, /usr/bin/javacjest użycie update-alternativespolecenia. Możesz to zrobić interaktywnie i wybrać z listy dostępnych opcji:

sudo update-alternatives --config javac

Lub możesz określić, którą opcję chcesz w wierszu polecenia:

sudo update-alternatives --set javac /usr/lib/jvm/java-7-openjdk/bin/javac

Ze względu na sposób, w jaki przechowuje informacje, użycie update-alternativesnie jest dokładnie równoważne (ale zamiast tego jest uważane za lepsze) niż ręczne utworzenie /usr/bin/javadowiązania symbolicznego do twojego javacwyboru. Zobacz man update-alternativeswięcej informacji na ten temat.

Jeśli update-alternativesnie działa, uruchom to polecenie i spróbuj ponownie:

sudo ln -s /etc/alternatives/javac /usr/bin/javac
Nicolas
źródło
13

Oto co zrobiłem. Zadziałało.

Najpierw zainstalowałem jdk dla Java 7 w następujący sposób:

sudo apt-get install openjdk-7-jdk

To może wystarczyć: sprawdź, czy uruchomiłem javac w ŚCIEŻCE javac -version

Jeśli nie, postępuj zgodnie z odpowiedzią Mikołaja, z wyjątkiem tego, że zamiast sudo update-alternatives --config javactego:

sudo update-alternatives --config java

I wybrałem Java 7 w linii poleceń, wpisując 2:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
* 2            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      manual mode

Press enter to keep the current choice[*], or type selection number:
tlenek arsenowy
źródło
2

Nie jestem pewien, czy to pomaga, ale zadziałało dla mnie. Miałem ten problem, javac po prostu nie było nigdzie, prawdopodobnie dlatego, że zainstalowałem tylko Jre . Zainstalowanie pakietu jdk po jego naprawieniu .

sudo apt-get install openjdk-8-jre
sudo apt-get install openjdk-8-jdk
Sergiu
źródło