Java 프로그램에서 컴파일할때 아래와같이 package OOO does not exist 에러와 함께, import .. 메시지가 나오면 해당 jar 파일을 못찾는다는 의미입니다.
$ javac Test1.java
Test1.java:3: error: package javax.jms does not exist
import javax.jms.*;
^
1 error
$
CLASSPATH 가 제대로 잡혀있는지 확인하고, 해당 CLASSPATH 에 해당 패키지가 들어있는지 먼저 확인합니다.
CLASSPATH 설정은 아래와 같이 합니다.
$ export CLASSPATH=.:./lib/*:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar:$CLASSPATH
이때 중요한게 디렉토리명만 지정하면 안되고, 반드시 디렉토리명 뒤에 별표(*)를 붙여주어야 한다는 것입니다.
해당 jar 파일까지 적어주던가, 아니면 별표(*) 를 적어줘야 합니다. 그냥 디렉토리명만 넣으면 못찾습니다.
즉, ./lib/* (o)
./lib (x)
또, 해당 디렉토리로 직접 들어가서 정말로 해당 패키지에대한 jar 파일이 있는지도 확인해야 합니다.
$ cd ./lib
$ ls -l *jms*
-rw-r--r--. 1 oracle oinstall 62729 May 11 03:11 javax.jms-api-2.0.jar
CLASSPATH 지정이 잘 안되는 경우는 javac 컴파일할때나 java 로 실행할때 커맨드라인상에서 직접 CLASSPATH 를 지정할 수도 있습니다. (-cp 옵션)
-- 컴파일
$ javac -cp "./lib/*" Test1.java
-- 테스트
$ java -cp "./lib/*":. Test1
'IT관련' 카테고리의 다른 글
(미니큐브 에러) Failed to start podman container, no container with name or ID "minikube" found (0) | 2023.11.19 |
---|---|
리눅스 가상머신에 Oracle RAC 19c 설치 유튜브 영상 및 스크립트 (1) | 2023.10.04 |
오라클 RMAN 백업/복구 관련 주요 커맨드 모음, 개괄적인 설명 (0) | 2023.07.19 |
오라클 Alertlog 로그 모니터링 프로그램 - Oracle 무료 DB관리툴 (0) | 2023.07.12 |
오라클 에러 정보 (ORA-01031) - 권한부족에 의한 단순 에러 (insufficient privileges) (0) | 2023.07.12 |