2010-11-18 4 views
1

나는 자이 썬과 관련된 두 개의 명령을 실행하는 것과 관련하여 질문이있다. classpath 및 db 드라이버에 문제가 있습니다. 것을 실행 자이 썬 -J-클래스 경로 ../lib/mysql-connector-java-5.1.7.jar test.py/홈/시험/데이터클래스 패스에 대한 자이 썬 문제

: 나를 위해 작동 무엇

다음을 수행한다 명령은 모두 예상대로 실행되므로 jython이 필요하지 않도록 jar로 실행되도록 스크립트를 결합하고 싶습니다. 일단 내 항아리를 만들면 드라이버가 필요하고 오류가없는 드라이버를 반환 할 때까지 모든 것이 실행됩니다. 난

-cp ../lib/mysql-connector-java-5.1.7.jar mytest.jar의 test.py/홈/시험/데이터 자바 :

나는 다음과 같은이 실행 나는 왜 사람이 일하고 다른 사람은 일하지 않을지 확신 할 수 없다.

감사합니다.

답변

0

나는 그것이 작동하지만 왜 작동하는지 잘 모르겠습니다. 누군가가 나에게 설명하기를 바랍니다. 항아리를 만들 때 mytest.jar 항아리를 다시 빌드하고 항아리를 만들 때 필요한 클래스 경로를 포함 시켰습니다. 그러면 java에서 다음과 같이 사용할 수 있습니다. java -cp mytest.jar test.py/home/test/data

커맨드 라인 대신 mainfest에 classpath를 포함시키는 것이 다른 결과를 가져 오는 이유는 무엇입니까?

+0

Ant, beanshell, Jython 등을 통해 Java 프로그램을 실행하면 클래스가 "기본 클래스 로더"대신 사용자 정의 클래스 로더에로드되는 경우가 있습니다. 예를 들어 beanshell 스크립트를 시작한 다음 스크립트 내에서 jar를 동적으로로드하면 사용자 정의 클래스 로더에 .jar가로드되고 JDBC 드라이버와 같이 Class.forname 메소드로로드해야하는 클래스가 환경에 문제를 일으킬 수 있습니다 . 당신이 기본 클래스 로더에 물건을로드하는 한 문제는 없을 것이다. – djangofan