2011-09-15 5 views
0

jfreechart 라이브러리를 사용하는 java 파일이 있으며 로컬 드라이브의 텍스트 파일을 사용하고 그래프를 표시합니다. 일식과 함께 잘 실행됩니다. 그러나 cmd 프롬프트에서 실행하고 싶습니다. 다른 간단한 Java 파일도 cmd prmnt를 통해 성공적으로 실행할 수 있지만이 파일을 실행할 수는 없습니다. PS : MyTool.java는 오류없이 컴파일 할 수 있으며 클래스 파일이 생성되었지만 실행할 수 없습니다.컴파일 할 수는 있지만 jar 파일이있는 cmd에서 Java를 실행할 수 없습니다.

1) This is how I am compiling it in cmd prompt: (gives 0 errors) 

C:\Documents and Settings\hello.maga\workspace\MyTool\lib>javac -cp "gnujaxp. 
jar;iText-2.1.5.jar;jcommon-1.0.16.jar;jfreechart-1.0.13.jar;jfreechart-1.0.13-e 
xperimental.jar;jfreechart-1.0.13.jar;junit.jar;servlet.jar;swtgraphics2d.jar" MyTool.java 

    2) This is how I am running it: 


C:\Documents and Settings\hello.maga\workspace\MyTool\lib>java -cp "gnujaxp.j 
ar;iText-2.1.5.jar;jcommon-1.0.16.jar;jfreechart-1.0.13.jar;jfreechart-1.0.13-ex 
perimental.jar;jfreechart-1.0.13.jar;junit.jar;servlet.jar;swtgraphics2d.jar" MyTool 


    Error for second command: 

    Exception in thread "main" java.lang.NoClassDefFoundError: MyTool 
    Caused by: java.lang.ClassNotFoundException: MyTool 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    Could not find the main class: MyTool. Program will exit. 


내가 어떤 오류가 있는지, 그때는 처음에 컴파일 안됩니다 이해하지 못하고, 누군가가 저를 교육 할 수 있습니다. 고맙습니다.

답변

2

"." 클래스 패스에서,과 같이 :에서

java -cp ".;gnujaxp.jar;iText-2.1.5.jar;jcommon-1.0.16.jar;jfreechart-1.0.13.jar;jfreechart-1.0.13-experimental.jar;jfreechart-1.0.13.jar;junit.jar;servlet.jar;swtgraphics2d.jar" 
0

"Setting the class path는"- 즉, 자바 확장하지 않은 클래스 "클래스 경로는 SDK 도구 및 응용 프로그램을 타사 및 사용자 정의 클래스를 찾을 수를 알려줍니다 또는 Java 플랫폼의 일부인 클래스 경로는 javac 컴파일러로 컴파일 한 클래스를 찾아야합니다. 기본값은 해당 클래스를 편리하게 찾을 수 있도록 현재 디렉토리입니다. "

하지만 classpath를 직접 설정하면 더 이상 기본값이 적용되지 않고 현재 디렉토리에서 클래스를로드 할 것으로 예상됩니다. '.'을 추가하는 등 수동으로 추가해야합니다. 에드 스텁 (Ed Staub)이 추천 한대로 클래스 경로로 이동합니다.

컴파일 할 때 클래스는 컴파일 할 때 클래스 경로에 필요하지 않으므로 말할 필요가 없습니다. 클래스 경로에있는 다른 모든 클래스 (jar 파일) 만 필요했습니다. 그렇기 때문에 두 작업에 동일한 클래스 경로를 사용해도 컴파일 할 수는 있지만 실행할 수는 없습니다.

관련 문제