创建java服务时无法加载守护程序

创建java服务时无法加载守护程序,java,daemon,Java,Daemon,我正在尝试创建一个JAVA执事,就像这里解释的那样 我使用以下命令构建它 javac -cp .:commons-daemon-1.0.15.jar Main.java jar cfe ServiceDaemon.jar example.Main Main.class EchoTask.class ./service.sh start && sleep 5 && ./service.sh stop cat /tmp/example.err 我得到了这

我正在尝试创建一个JAVA执事,就像这里解释的那样

我使用以下命令构建它

 javac -cp .:commons-daemon-1.0.15.jar Main.java
 jar cfe  ServiceDaemon.jar example.Main Main.class EchoTask.class
 ./service.sh start && sleep 5 && ./service.sh stop
 cat /tmp/example.err
我得到了这个错误

 java.lang.ClassNotFoundException: example.Main
     at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
     at java.security.AccessController.doPrivileged(Native Method)
     at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
     at org.apache.commons.daemon.support.DaemonLoader.load(DaemonLoader.java:151)
 Cannot load daemon
 Service exit with a return value of 3

看起来您的
Main
类位于默认包中,但是您指定
example.Main
作为主类,并且没有具有此名称的类。尝试将
example.Main
替换为
Main

Main.java
移动到名为
example
的目录中,然后使用

javac -cp commons-daemon-1.0.15.jar example/Main.java

我也遇到了同样的问题,解决方法如下

在本例中,“Main”类由“example”打包。 制作jar文件的正确方法如下所示

javac-d-cp commons-daemon.jar Main.java jar cvf Main.jar/example/*.class

然后,将生成的Main.jar包含到jsvc的-cp选项中