2010-11-09 76 views
4

的Java服务包装是我需要作为Windows服务运行,但java.lang.ClassNotFoundExceptionJava服务包装找不到主类

来到一个问题的工具我的默认命令行是:Java的罐子software.jar

我有更新wrapper.conf运行software.jar位于d:\,并有一个错误,我所做的更改:

# 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 

回答

2

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

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

这样,Java Service Wrapper将加载所有*.jar文件位于在classpath ../lib/目录,你不应该再出现此错误。

当然,你也可以定义每个JAR如果单独你喜欢:

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

好的,给我10分钟试试。 – Proyb2 2010-11-09 08:34:39

+0

哦,我有一个错误之后,谷歌的更多信息,感谢其他包装的例子,将jar复制到lib文件夹,使其工作:http://confluence.atlassian.com/pages/viewpage.action?pageId = 91554194 – Proyb2 2010-11-09 08:56:24

0

实际的错误似乎并没有要与主类在这里。它似乎与“xSocket.jar”不在类路径中。

2

由于您正在使用可执行jar来正常启动您的应用程序。你可能想尝试WrapperJarApp助手类。它旨在帮助集成可执行文件夹,而不需要为主类名称挖掘Manifest文件。查看此页面以获取更多信息: http://wrapper.tanukisoftware.com/doc/english/integrate.html#method4

这从版本3.3.3开始可用。

干杯, 莱夫

+0

嗨,已经解决,但我不能让Windows服务来运行jar,因为我没有创建任何代码的服务,如启动,停止和重新启动。我有时间了。 – Proyb2 2010-11-10 08:24:37