답변:
첫째, CLASSPATH
일반적으로 env var를 설정하면 해결하는 것보다 더 많은 문제가 발생합니다. 모든 응용 프로그램이 동일한 클래스 경로를 원하거나 필요로하지는 않으며 바람직하지 않거나 필요없는 항아리가 클래스 경로에 포함되어 있으면 종종 중단됩니다. 자바 앱은 단지 필요한만큼의 항아리 만 포함해야합니다.
클래스 경로를 설정해야하는 특정 개별 앱이있는 경우 일반적으로 명령 행 옵션이 선호 java -cp path1:path2:...
됩니다. 데스크탑 아이콘은 이러한 옵션을 포함하도록 명령을 변경하거나 이러한 옵션을 포함하도록 쉘 스크립트를 수정할 수 있습니다.
(그리고 규칙에 대한 예외는 항상 있기 때문에) java 버전에 따라 (Java 6 이상이 필요함) " *
" 를 추가하여 jar의 전체 디렉토리를 클래스 경로에 추가하도록 지정할 수 있습니다. 디렉토리의 끝에서; 예를 들면 다음과 같습니다.
/dir1/foo.jar:/dir2/dir3:/dir5/dir6/*:etc...
방법:
/dir1/foo.jar
-(단일 항아리)가 클래스 경로에 추가됩니다./dir2/dir3
-이 디렉토리에있는 모든 JAR되지 않은 클래스는 클래스 경로에 추가됩니다 (예 : 올바른 패키지 구조에 com.my.Foo.class
있어야합니다 ( 예 :에 있어야 함 /dir2/dir3/com/my/Foo.class
))./dir5/dir6/*
-이 디렉토리의 모든 jar (예 /dir5/dir6/*.jar
:)가 클래스 경로에 추가됩니다. 이 " *
"은 와일드 카드가 아닙니다 ( f*.jar
또는 사용할 수 없음 *.jar
). "모든 병 추가"를 나타내는 특수 문자입니다.일반적으로 jar의 전체 디렉토리를 애플리케이션의 클래스 경로에 추가해야하는 경우 앱이 올바르게 번들되지 않았습니다. 오히려 앱에는 종속 된 jar 목록이 포함 된 매니페스트가 있어야합니다. 또는 최소한 하나의 jar 만 클래스 경로에 추가해야하며 해당 jar은 하위 디렉토리의 jar 목록 전체를 표시 할 수 있습니다.
classpath를 영구적으로 설정하려면 1) java가 설치된 위치를 찾으십시오. "java는 어디에 있습니까"를 사용할 수 있습니다 openjdk-7 / 6은 / usr / lib / jvm / .....에 있습니다.
2) / etc / environment에 CLASSPATH를 설정해야합니다
sudo gedit /etc/environment
3) 다음과 같은 것을 추가하십시오 .. (타이핑하는 동안 공간을 남겨 두지 마십시오) (자바 버전 및 설치에 따라 사용자 정의하십시오) (이 홈 경로는 jdk 7을 엽니 다)
JAVA_HOME="/usr/lib/jvm/java-7-openjdk-i386/bin"
export JAVA_HOME
CLASSPATH=".:/usr/lib/jvm/java-7-openjdk-i386/lib:/home/laptop/Desktop/a2"
export CLASSPATH
":"으로 별도의 디렉토리