태그 보관물: java

java

우분투에서 폴더에 대한 CLASSPATH 변수를 설정하는 방법 있지만 폴더를 CLASSPATH로 설정하고 싶습니다. 이처럼 export CLASSPATH=/usr/local/java/lib/:$CLASSPATH 그러나

export CLASSPATH=/usr/local/java/tools.jar:$CLASSPATHCLASSPATH에 tools.jar을 추가 한다는 것을 알고 있지만 폴더를 CLASSPATH로 설정하고 싶습니다.

이처럼

export CLASSPATH=/usr/local/java/lib/:$CLASSPATH

그러나 작동하지 않습니다.



답변

첫째, 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

“:”으로 별도의 디렉토리


답변

열린 터미널 및 유형

sudo nano ~ / .bashrc

필요한 모든 내보내기를 추가하십시오 …

수출 JAVA_HOME = / usr / local / java / jdk1.6.0_06 (경로)

수출 ANT_HOME = / opt / ant / apache-ant-1.9.4

변경 사항을 적용하려면 마지막으로 터미널을 다시 시작하십시오.


답변