Java SDK를 설치 한 후 Linux에서 어디서 찾을 수 있습니까?


185

apt-get install을 사용하여 JDK를 설치했지만 jdk 폴더의 위치를 ​​모르겠습니다. 그 길을 설정해야합니다. 위치에 대한 단서가 있습니까?


1
리눅스 배포 : 데비안 2.6.26
dinesh707

/usr/local/java/원래 다운로드 된 Oracle 배포판을 사용해보십시오 .

답변:


385

이것은 패키지 시스템의 비트에 따라 다릅니다 ... java명령이 작동하면 입력 readlink -f $(which java)하여 java 명령의 위치를 ​​찾을 수 있습니다 . OpenSUSE 시스템에서 지금은 반환합니다 /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/bin/java(그러나 이것은을 사용하는 시스템이 아닙니다 apt-get).


우분투에서는 OpenJDK 및 Suns JDK 의 다른 하위 디렉토리 (및 다른 구현도 포함 )에있는 것처럼 보입니다 ./usr/lib/jvm/java-6-openjdk//usr/lib/jvm/

데비안도 마찬가지입니다.


특정 패키지에 대해 dpkg를 쿼리하여 설치하는 파일과 설치 위치를 결정할 수 있습니다. 예를 들어 'openjdk-6-jdk'패키지의 경우 :dpkg -L openjdk-6-jdk


1
내가 본 일부 설정에서 / usr / java를 보는 orth
jlb83

android studio에서 JDK 경로를 추가하려면이 / usr / lib / jvm / java-8-oracle /을 추가하십시오.
Rohit Rokde

3
내 길은 것 같습니다 /usr/lib/jvm/java-7-openjdk-amd64.
einverne

2
주어진 readlink가 가장 우아하고 효율적이라고 생각하지만 readlink -f $(which javac) 동일한 컴퓨터에 JDK와 JRE가 이상하게 혼합되어있는 경우 'c'에주의하십시오. JDK에는 컴파일러 (javac)가 포함되어 있으며 JRE에는 없습니다. 그러나 경로가 올바르지 않으면 실패하고 시도 할 수 find /usr/java -wholename '*ava/jdk*' -prune있습니다. 아래 주석에서 알 수 있습니다.
스티븐은 쉽게 즐겼다

@Winnemucca 그것은 나를 위해 작동합니다, 당신은 자바가 어디에 있는지 찾을 수 있고 jdk 경로가 어디 있는지 찾을 수 있습니다.
einverne

45
update-java-alternatives -l

어떤 자바 구현이 시스템의 기본값이며 파일 시스템의 어디에 설치되어 있는지 알려줍니다. 추가 옵션에 대해서는 설명서를 확인하십시오.


7
이것은 데비안 특정입니다 (적어도). 다른 배포판에는이 기능이 없을 수 있습니다.
dequis

2
문제는 언급 이후 @dequis, 그것은, 데비안에 대한 답변의 특정의 apt-get와 배포판으로 Debian 2.6.26. AFAIK, 모든 데비안 파생어에 대해 동일해야합니다.
forcefsck

2
다른 사람들을 위해 지적하고 있습니다. 이 특정 질문에 유효하다는 것을 알고 있습니다.
dequis

1
업데이트 대안 --list | grep java가 RHEL에서 저를 위해 일했습니다
6

30
$ which java 

당신에게 뭔가를 제공해야합니다

/usr/bin/java

2
진실. 내가 그것을 후에 내기 apt-get을 설치
Surrican

6
이것은 실제로 완전한 JDK를 가리 키지 않습니다. 1. 심볼릭 링크이며 심볼릭 링크를 읽더라도 바이너리는 JDK 내에 없습니다. 예를 들어, 명령을 실행 readlink -f $(which javac)하면 인쇄 /usr/lib/jvm/java-8-oracle/bin/javac됩니다. 해당 bin 폴더는 JDK가 아닙니다. JDK가 전류 $JAVA_HOME에 경로가 포함되어 있는지 확인하기위한 일반적인 산-염기 시험 lib/tools.jar. 그 캐스트에서는 /usr/lib/jvm/java-8-oracle/bin사실이 아니므로 JDK가 아닙니다.
좀비

Centos / RHL에서 이것이 JDK를 찾는 것을 선호합니다 (설치된 경우). find /usr/java -wholename '*ava/jdk*' -prune 그러나 동작은 OpenJDK 또는 Oracle Java에 대해 이야기하는지 여부와 처음에 어떻게 설치되었는지에 달려 있습니다.
스티븐은 쉽게

12

이 질문은 옮겨 지지만 다음을 수행 할 수 있습니다.

which javac

또는

cd /
find . -name 'javac'

두 번째 옵션이 마음에 듭니다. JRE / JDK가 여러 개 있고 모두 찾으려면 간단하고 유용합니다.
Amos M. Carpenter

"find / -name 'javac'"는 입력이 적지 만 관리자 (루트) 권한이 필요하거나 권한 거부 메시지가 많이 표시됩니다.
스티븐은 쉽게 즐겁게

9

찾기를 사용하여 찾으십시오. /usr어딘가에 있어야합니다 :

find /usr -name java

명령을 실행할 때 실제 발견 된 결과를 난독 화하는 "권한 거부"메시지가 너무 많으면 stderr을 / dev / null로 리디렉션하십시오.

find /usr -name java 2> /dev/null

1
루트 (관리자)가 아닌 경우 많은 권한 거부 메시지가 표시됩니다.
스티븐은 쉽게 즐겁게

7

Java 폴더 경로를 찾는 또 다른 가장 좋은 방법 alternatives은 Fedora Linux에서 명령 을 사용 하는 것입니다 (우분투에 대해서는 알고 있지만 헤드 라인으로 구글 에서이 게시물을 누르십시오). 나와 같은 사람들이 페도라 맛에 대한 답을 찾고자하는 경우를 공유하고 싶습니다.

Java에 관한 모든 정보를 표시하려면

alternatives --display java

1
이것은 페도라에는 / usr / 자바 / jdk- [버전]을 돌려 나를 위해 일한
시나마다 니

3

3 단계 프로세스 : 첫째 : 터미널 열기-> $ whereis java 다음과 같은 출력을 제공합니다. java: /usr/bin/java /usr/share/java /usr/share/man/man1/java.1.gz

둘째 : 다음 ls -l /usr/bin/java 과 같은 출력을 제공합니다. lrwxrwxrwx 1 root root 22 Feb 9 10:59 /usr/bin/java -> /etc/alternatives/java

셋째 : ls -l /etc/alternatives/java 출력은 JDK 경로입니다. lrwxrwxrwx 1 root root 46 Feb 9 10:59 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java



1

명령 : sudo update-alternatives --config java설치된 모든 Java 버전의 전체 경로를 찾습니다.


1

이 질문은 여전히 ​​관련이있는 것으로 보이며 그 답은 움직이는 목표 인 것 같습니다.

내 데비안 시스템 (버스터)에서 :

> update-java-alternatives -l
java-1.11.0-openjdk-amd64      1111       /usr/lib/jvm/java-1.11.0-openjdk-amd64

그러나 실제로 살펴보면 향후 유지 관리를 단순화하기 위해 패키지 시스템에 여러 디렉토리와 기호 링크가 배치되어 있음을 알 수 있습니다.

실제 디렉토리는의 java-11-openjdk-amd64다른 심볼릭 링크입니다 default-java. openjdk-11디렉토리 도 있지만 source.zip 파일 만 포함되어 있습니다.

이 점을 감안할 때 데비안에서만 사용하는 가장 좋은 값은입니다 /usr/lib/jvm/default-java. 완전히 다른 버전의 Java를 설치하거나 스위치 공급 업체를 설치하더라도 항상 유효해야하기 때문입니다.

경로를 알고 싶어하는 일반적인 이유는 일부 응용 프로그램이 원하는 경로이기 때문에 버전 번호가 변경된 업그레이드를 수행하여 해당 앱이 중단되는 것을 원하지 않을 수 있습니다.


0

OpenSUSE 13.1 / 13.2에서 /usr/lib64/jvm/java-1.6.0-openjdk-(version-number)
버전 번호는 1.7.x 1.8.x 등이 될 수 있습니다. 설치 한 소프트웨어 관리자 마녀 버전을 확인하십시오 ...

안드레


0

Linux Fedora30에서는 몇 가지 버전의 전체 Java JDK, 특히 패키지 이름을 사용할 수 있습니다.

java-1.8.0-openjdk-devel.x86_64 
java-11-openjdk-devel.x86_64

설치되면 다음에서 찾을 수 있습니다. /usr/lib/jvm

전체 개발 JDK (단순 런타임 전용 JRE와 다른)의 위치 / 디렉토리를 선택하려면 항목을 찾으십시오.

ls -ld java*openjdk*

다음은 버전을 선택해야하는 특정 버전에 대한 링크 인 두 가지 올바른 선택입니다.

/usr/lib/jvm/java-1.8.0-openjdk
/usr/lib/jvm/java-11-openjdk

0

이것은 나를 위해 일한 가장 좋은 방법입니다.이 명령을 실행하십시오 :-

$(dirname $(readlink $(which javac)))/java_home
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.