Java Service Wrapper找不到主类

时间:2010-11-09 08:22:39

标签: java

Java Service Wrapper是我作为Windows服务运行所需的工具,但遇到java.lang.ClassNotFoundException的问题

我的默认命令行是:java -jar software.jar

我已更新wrapper.conf以便在D:\中运行software.jar并且出现错误,我所做的更改:

# Java Classpath (include wrapper.jar)  Add class path elements as
#  needed starting from 1
wrapper.java.classpath.1=../software.jar
wrapper.java.classpath.2=../lib/wrapper.jar

我应该为这个参数添加什么?如果我发表评论,它将使用Main

wrapper.java.mainclass=software

当我宣布“软件”为主类时,我得到了恐惧错误:

wrapper  | Launching a JVM...
jvm 1    | java.lang.NoClassDefFoundError: org/xsocket/connection/IHandler
jvm 1    | Caused by: java.lang.ClassNotFoundException: org.xsocket.connection.I
Handler
jvm 1    |      at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
jvm 1    |      at java.security.AccessController.doPrivileged(Native Method)
jvm 1    |      at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
jvm 1    |      at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
jvm 1    |      at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

jvm 1    |      at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
jvm 1    | Could not find the main class: xSocketServer.  Program will exit.
wrapper  | JVM exited while loading the application.
jvm 1    | Exception in thread "main"
wrapper  | CTRL-C trapped.  Shutting down.
wrapper  | <-- Wrapper Stopped

我的software.jar包含:

META-INF
org -- Eclipse setting
software.class
xsoftwareHandler.class
xSocket.jar

3 个答案:

答案 0 :(得分:2)

我建议将所有库存储在lib/目录中,然后在wrapper.conf文件中添加以下信息:

wrapper.java.classpath.1=../lib/*.jar

这样,Java Service Wrapper将加载位于类路径中*.jar目录中的所有../lib/文件,并且不应再次出现此错误。

当然,如果您愿意,也可以单独定义每个JAR:

wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../software.jar
wrapper.java.classpath.3=../lib/xSocket.jar
...

答案 1 :(得分:2)

正在使用可执行jar来正常启动应用程序。您可能想尝试WrapperJarApp帮助程序类。它旨在帮助集成可执行jar,而无需深入了解主类名的Manifest文件。请查看此页面以获取更多信息: http://wrapper.tanukisoftware.com/doc/english/integrate.html#method4

从版本3.3.3开始提供此功能。

干杯, 雷夫

答案 2 :(得分:0)

实际错误似乎与Main类无关。似乎是“xSocket.jar”不在类路径中。