2012-03-04 3 views
0

Когда я экспортирую проект, он работает, но когда я его открываю, он говорит: «не удается найти основной класс: Game.Frame», и есть папка, называемая Game и класс в нем Frame и Frame.class - основной класс.Ошибка при попытке запустить файл jar, экспортированный из Eclipse

+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 называет «пространство имен»).

Смежные вопросы