2012-03-04 5 views
0

프로젝트를 내 보내면 열 수 있지만 "주 클래스를 찾을 수 없습니다 : Game.Frame"이라는 폴더가 있습니다. Game이고 거기에 FrameFrame.class이라는 클래스가 주 클래스입니다.Eclipse에서 내 보낸 jar 파일을 실행할 때 오류가 발생했습니다.

+0

어떻게 열지? 항아리에서 뛰는거야? http://docs.oracle.com/javase/tutorial/deployment/jar/run.html을 참조하십시오. –

답변

0

"게임"클래스가 패키지에 들어 있고 패키지를 올바르게 가리 키지 않은 것 같습니다.

예 :

http://www.jarticles.com/package/package_eng.html

If you try to run this HelloWorld using java HelloWorld, you will get the following error:

C:\world>java HelloWorld 
Exception in thread "main" 
java.lang.NoClassDefFoundError: HelloWorld (wrong name: world/HelloWorld) 
     at java.lang.ClassLoader.defineClass0(Native Method) 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:442) 
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:101) 
     at java.net.URLClassLoader.defineClass(URLClassLoader.java:248) 
     at java.net.URLClassLoader.access$1(URLClassLoader.java:216) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:191) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:290) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 

The reason is right now the HelloWorld class belongs to the package world. If we want to run it, we have to tell JVM about its fully-qualified class name (world.HelloWorld) instead of its plain class name (HelloWorld).

C:\world>java world.HelloWorld 
C:\world>Hello World 

Note: fully-qualified class name is the name of the java class that includes its package name

참고도 jar 파일이 유사한 규칙을 가지고 - 당신이 패키지가있는 경우, 당신은 패키지 범위를 한정 할 필요가 . 그리고 예, 항상은 .Net이 "네임 스페이스"라고 부르는 것의 도덕적으로 등가물 인 "패키지"를 사용해야합니다.

관련 문제