帮助在linux上启动java应用程序
我有这样的bash脚本start.sh:帮助在linux上启动java应用程序,java,linux,Java,Linux,我有这样的bash脚本start.sh: export JAVA_HOME=/HOME/qds/bin/jdk1.6.0_22 导出QDS\u HOME=/HOME/QDS $JAVA_HOME/bin/JAVA-classpath$QDS_HOME/lib/*:$QDS_HOME/lib/commons/*com.QDS.Main$@ 在目录/home/qds/lib中,我有必要的库和我的jar文件,其中包含: com\qds\config com\qds\entities com\qds\h
export JAVA_HOME=/HOME/qds/bin/jdk1.6.0_22
导出QDS\u HOME=/HOME/QDS
$JAVA_HOME/bin/JAVA-classpath$QDS_HOME/lib/*:$QDS_HOME/lib/commons/*com.QDS.Main$@
在目录/home/qds/lib中,我有必要的库和我的jar文件,其中包含:
com\qds\configcom\qds\entities
com\qds\hibernate
com\qds\protocols
com\qds\util
com\qds\Main.class
但当我运行./start.sh时,我有: /start.sh 线程“main”java.lang.NoClassDefFoundError:com/qds/main中出现异常(错误名称:main)
在java.lang.ClassLoader.defineClass1(本机方法)中,您必须通过以下几种方式之一指定主类
Java不支持option-classpath中的通配符。尝试从$QDS_HOME/lib/*和$QDS_HOME/lib/commons/*中删除* 顺便说一句,这也与windows相关 类路径应该包含 1.目录 2.显式编写的jar文件 如果您有许多jar文件,您可以创建组成命令行选项的脚本。 例如在linux上
-classpath `ls -1|tr '\n' :`
编写以冒号分隔的类路径,但是shell不应该为他扩展通配符。因此,虽然为true,但类路径不能包含通配符,因为shell扩展通配符后,就
java
命令而言,它只是一个文件列表,但我刚才看到它有多个条目,由:
分隔,这意味着shell想要扩展任何内容,carryon:)