0

我无法解决我试图通过 bash 脚本执行 java 程序的问题。

为什么我收到此错误?

Exception in thread "main" java.lang.NoClassDefFoundError: com/QuoteTester
Caused by: java.lang.ClassNotFoundException: com.QuoteTester
        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.QuoteTester.  Program will exit.

这是我的脚本内容 quotetest.sh

java -cp ./com/ug_ugbapi-all.jar com.QuoteTester $1

我正在执行脚本,这样

./quotetest.sh GOOG

从我执行此脚本的目录 quotetest.sh ,我得到了一个名为com的目录,我在该目录 下得到了ug_ugbapi-all.jar and QuoteTester.class classes.

尝试了所有选项(将所有文件放在同一个文件夹 com 中,但没有任何效果)

谁能告诉我如何解决它?

4

2 回答 2

1

使用给定的类路径,Java只会查看 jar 文件。要让它在 jar 之外找到类文件,您必须修改您的-cp参数:

java -cp ./com/ug_ugbapi-all.jar:. com.QuoteTester $1
于 2013-07-12T15:35:19.897 回答
0

您收到此错误是因为com/QuoteTester找不到该类,这意味着com/QuoteTester该类不在类路径上。

于 2013-07-12T15:38:20.010 回答