Windows JAVA_HOME
에서 JDK 설치 폴더를 가리켜 야합니다 ( JAVA_HOME/bin
모든 실행 파일을 JAVA_HOME/libs
포함하고 모든 기본 jar
라이브러리를 포함).
Sun의 JDK 번들을 다운로드하여 Linux에 설치하면 동일한 절차입니다.
그러나 Kubuntu의 기본 OpenJDK 패키지를 사용해야합니다. 문제는 모든 실행 파일이 /usr/bin
. 그러나 항아리는 /usr/share/java
. 동일한 JAVA_HOME
폴더에 있지 않기 때문에 Grails에 문제가 있으며 표준 Java 구조를 예상하는 다른 응용 프로그램에 문제가있을 수 있습니다.
-
내가 사용하는 경우 :
JAVA_HOME=/usr
Java 실행 파일을 사용하려는 모든 응용 프로그램과 스크립트는 표준 절차를 사용할 수 있습니다
call $JAVA_HOME/bin/executable
. 그러나 항아리가 다른 위치에 있기 때문에 항상 찾을 수있는 것은 아닙니다 (예 : 내가 얻고있는 grailsClassDefNotFound
에서native2ascii
). -
반면에 다음을 사용하는 경우 :
JAVA_HOME=/usr/share/java
자바 실행 파일 (아무도
java
,javac
등) 찾을 수 없습니다.
그렇다면 JAVA_HOME
Debian 기반 Linux에서 변수 를 처리하는 올바른 방법은 무엇입니까?
도와 주셔서 감사합니다, Luis
답변
마침내 저에게 효과가 있었던 것은 (Grails가 이제 원활하게 작동합니다) 거의 Steve B.가 지적한 것처럼하고 있습니다.
JAVA_HOME=/usr/lib/jvm/default-java
이렇게하면 사용자가 시스템의 기본 JDK를 변경해도 JAVA_HOME
계속 작동합니다.
default-java
현재 JVM에 대한 심볼릭 링크입니다.
답변
대안을 사용하여 여러 Java 버전을 관리하는 경우 다음 JAVA_HOME
과 같이 symlinked java (또는 javac)를 기반으로을 설정할 수 있습니다 .
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
답변
표준 Ubuntu 설치는 다양한 Java 버전을 /usr/lib/jvm
. javac
경로에서 찾을, 자바는 여기에 소프트 링크합니다.
JAVA_HOME
환경 변수 를 설정 하고 새 Java가 있는지 확인하는 한 원하는 곳에 Java 버전을 설치하는 데 문제가 없습니다.bin
경로에 .
이를 수행하는 간단한 방법은 Java 홈이 소프트 링크로 존재하도록하는 것입니다. 따라서 버전을 업그레이드하거나 전환하려면 이것이 가리키는 디렉토리 만 변경하면됩니다. 예 :
/usr/bin/java --> /opt/jdk/bin/java,
/opt/jdk --> /opt/jdk1.6.011
답변
일반적으로 JAVA_HOME 환경 변수가 없습니다. 자바는 스스로 설정할 수 있습니다. java java.home 시스템 속성을 사용할 수 있어야합니다.
답변
JAVA_LIB 변수도 설정해보십시오.
답변
JAR 파일을 찾을 수없는 문제가있는 경우 CLASSPATH가 해당 파일의 위치를 포함하도록 설정되어 있는지 확인합니다. 그러나 CLASSPATH는 종종 다른 프로그램에 대해 다르게 설정되어야하며 종종 개별 프로그램에 대해 고유하게 설정되는 것이됩니다.
답변
문제를 해결할 수있는 업데이트 된 답변과 Ubuntu에 Oracle Java 7을 설치하는 일반적인 방법은 여기에서 찾을 수 있습니다. http://www.wikihow.com/Install-Oracle-Java-on-Ubuntu-Linux