创建java服务时无法加载守护程序
我正在尝试创建一个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 我得到了这
我使用以下命令构建它
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选项中