2012-04-05 127 views
0

我刚刚开始学习Java(大约一周前),并且最近几天我使用Slick2D构建了一个小游戏。不管怎样,每当我从Eclipse导出一个JAR,并与公司的Java blahblahblah.jar“我收到以下错误运行:Eclipse JAR导出不起作用

Exception in thread "main" java.lang.NoClassDefFoundError: /Users/andy/Desktop/game/jar 
Caused by: java.lang.ClassNotFoundException: .Users.andy.Desktop.game.jar 

一切都被选中要导出的LWJGL和Slick2D罐子lib文件夹中和我试过FatJar。我在互联网上看过,似乎找不到任何可行的解决方案。

任何帮助?

+0

您使用的确切命令是什么? – daveb 2012-04-05 17:49:16

+0

的Java /Users/andy/Desktop/game.jar – andy 2012-04-05 17:49:35

+0

霸菱记住我也试了罐子,我也得到: 无法从 加载主类清单属性/Users/andy/Desktop/game.jar – andy 2012-04-05 17:53:12

回答

5

Anyway, whenever I export a JAR from eclipse and run it with 'java blahblahblah.jar' I get the [an error]

您需要使用:

java -jar blahblahblah.jar 

编辑: 基于您的原始帖子的评论,似乎你是没有清单导出jar。确保从导出菜单中选择Runnable Jar。另外,请确保在导出时为您的游戏选择有效的Run Configuration

+0

他的评论说他已经拥有,但是没有设置清单 – daveb 2012-04-05 18:07:46

+0

返回: 未能加载Main-Class清单属性/Users/andy/Desktop/game.jar – andy 2012-04-05 18:08:48

+0

是的,我刚刚阅读并编辑过。 – 2012-04-05 18:08:54

1

试试这个:

java -cp your_jar.jar package.name.ClassName 

,其中类名是主定义的类。

的-cp开关装置的类路径,其中规定,java会用它来查找类的地方。

在此之后,是类作为切入点使用的名称。如果你想为它提供参数(主要方法),那么他们会在类名后。

如果您需要在类路径中指定多个jar文件,它们在Linux上使用冒号或Windows分号分隔

+0

这似乎也不起作用。该软件包如下: package slick.path2glory.SimpleGame; 然而,这是响应: java命令〜/桌面/ game.jar slick.path2glory.SimpleGame.SimpleGame 异常在线程 “主要” java.lang.NoClassDefFoundError:组织/ newdawn /柔滑/ BasicGame – andy 2012-04-05 18:07:55

+0

所以这现在找到你的班级,但不是另一个。该类定义在哪里?在eclipse中导入的单独的jar文件中? – daveb 2012-04-05 18:11:07

+0

因为您需要在类路径中包含Slick2D和LWJGL jars。 'java -cp your_jar.jar:Slick2d.jar:LWJGL.jar package.name.ClassName' – 2012-04-05 18:11:07