【发布时间】:2014-02-03 18:04:25
【问题描述】:
我有一个如下所示的 bash 脚本。我在这里所做的只是尝试运行一个传入类路径和其他输入的 java 程序。
[guest@server1]# cat runJava
#!/bin/bash
JARS=/home/guest/lib/*
CONFIG=/home/guest/AnalyticServer.properties
echo JARS=$JARS
echo CONFIG=$CONFIG
echo "java -cp \"$JARS\" com.test.ASDataSourceClient DELETE -c \"$CONFIG\" -n test_ds"
java -cp "$JARS" com.test.ASDataSourceClient DELETE -c "$CONFIG" -n test_ds
当直接在命令行/终端上运行时,java 程序运行得非常好。我什至测试了直接(一个接一个)在终端上运行上述脚本中的所有命令,并验证 java 程序运行良好。但是,当我通过脚本启动这些命令时,我遇到了问题。它甚至似乎没有正确执行 echo "java -cp .." 命令。
任何人都可以建议我可能缺少什么。
[guest@server1]# bash runJava
JARS=/home/guest/lib/*
CONFIG=/home/guest/AnalyticServer.properties
" -n test_dsaSourceClient DELETE -c "/home/guest/AnalyticServer.properties
Exception in thread "main" java.lang.NoClassDefFoundError: com/test/ASDataSourceClient
Caused by: java.lang.ClassNotFoundException: com.test.ASDataSourceClient
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: com.test.ASDataSourceClient. Program will exit.
【问题讨论】:
-
您的回声很好,应该会显示出来。错误消息来自java。你是如何运行脚本的?