无法运行JAR文件(在Eclipse中创建)

时间:2010-04-27 12:17:13

标签: java eclipse export launch

我讨厌用这个发帖子但是我是Java的新手......我跟着this tutorial创建了一个套接字服务器(在Eclipse中开采)。我可以在Eclipse中运行服务器,一切都很好。但是当我尝试导出项目时,我无法弄清楚如何运行它。我一直收到这个错误(根据我的运行方式而有所不同)

Exception in thread "main" java.lang.NoClassDefFoundError: xsocketserver/Main
Caused by: java.lang.ClassNotFoundException: xsocketserver.Main
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:315)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:330)
at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:398)

我已经读过这个问题与正在设置的类路径有关。我尝试了以下内容:

java -cp libs/xSocket-2.8.12.jar xsocketserver.Main
java -jar xSocketServer.jar    
java -classpath xSocketServer:xSocketServer/libs/xSocket-2.8.12.jar xsocketserver.Main

加上许多其他人。 JAR中的文件结构如下:

xSocketServer.jar
    -> xsocketserver
        -> Main.class
        -> xSocketDataHandler.class
    -> META-INF
        -> MANIFEST.MF
    -> libs
        -> xSocket-2.8.12.jar

顺便提一下,我已经尝试添加我自己的包含Class-Path的清单文件,但是当我检查它时,它总是显示:

Manifest-Version: 1.0
Main-Class: xsocketserver.Main

我猜这是一个常见的问题,基于我在Google上看过的点击次数,但我无法理解我做错了什么。错误的导出设置可能??

2 个答案:

答案 0 :(得分:1)

我不相信jar文件可以包含另一个jar(因为你已经包含了xSocket-2.8.12.jar)。如果xSocket是您自己的代码,请将其直接包含在“外部”jar中。

退房 http://www.velocityreviews.com/forums/t143595-jars-containing-jars.html  和 Classpath including JAR within a JAR

否则它看起来对我来说。确保你没有尝试运行jar的旧/陈旧版本。 (删除jar并确保eclipse导出一个新的。)

如何从eclipse导出.jar文件?生成的jar文件通常基于您的一个运行配置。确保使用从eclipse开始工作时使用的那个。

除非您已经尝试过,否则请尝试按照以下步骤(在以下网站列出)

http://forums.sun.com/thread.jspa?threadID=5358121

1 - 右键单击​​您的项目并选择导出选项。弹出一个导出窗口。

2 - 从加速窗口中选择jar文件选项,它将在窗口的java选项中。

3 - 单击JarFile选项后,将弹​​出一个新窗口。

4 - 选择ur jar文件的导出目标,然后单击“下一步”。

5 - 点击下一个你将看到的新屏幕后,再次点击下一个按钮。

6 - 现在你会看到一个新的屏幕,其字段名称为“主类”浏览你的主要appliaction类.main类曾经是主要方法。

7-现在选择完成。

答案 1 :(得分:0)

我遇到了类似的问题,而你的问题可能与否有关......

Jar清单文件必须是UTF-8格式。我曾经使用过Windows记事本而且没用。当我用另一个编辑器重新创建清单文件时,它运行正常。

我假设eclipse会创建UTF-8文件,但我不确定它是否会自动转换,如果它们不是那种格式

如果你确实使用了另一个编辑器来创建清单的第一个版本,请尝试删除manifest.mf并在eclipse中重新创建。

约翰