2012-05-26 152 views
0

我现在有命令提示符的打开实例,它读取批处理文件调用Java问题

java -cp .;jars/GUI.jar;jars/utils.jar;...(a bunch more jars in the same folder)... Test 

其中test是我的Java程序(class文件已经编译)。

当我按回车时,程序运行得很好。现在,我将相同的确切行放入批处理文件中进行自动运行,但它给了我一个错误。

批处理文件:

cd 
java -cp .;jars/GUI.jar;jars/utils.jar;...(a bunch more jars in the same folder)... Test 
pause 

错误:异常线程 “main” java.lang.NoClassDefFound测试(错误的名称:测试)

我已经在这几个小时,所以今天在这点,这是我需要做的最后一件事,我的大脑被炸,我错过了一些简单的东西?

+0

是否打印出您所期望的目录?该批处理文件与Test在同一个目录中吗? – pimaster

回答

0

或者Bash脚本不知道在哪里安装了Java的PATH。我也会检查环境变量。

+0

echo%cd%显示它位于当前工作目录中(其中存在java文件) 我将java添加到批处理文件中的路径变量中,但这不应该是问题,因为命令java本身触发java.exe就好了。我想这可能是一个java文件本身的问题,看着它,谢谢你的输入 – user1418454

+0

我给了完整的路径名引号,没有去。在这一点上,我只是非常困惑,我可以在命令提示符的实例中运行程序,但是当我尝试在批处理文件中复制(使用正确的目录)时,这是不行的。作为一个侧面的问题,是否有特殊情况下编译器无法找到/加载主类(不包括缺少的主类作为原因)? – user1418454

+0

当jar从未拥有主类文件或者路径通向其他某个地方时,可能会出现问题。尝试用一些javac和java命令调用实际的java文件。让我们删除下一个调试的jar文件的图层。 –

0

也许你应该尝试提供Test类的完整路径:/ x/y/Test 我并不确定确切的规则,但我猜测计算机无法知道你想启动哪个类如果Test .class不在当前文件夹中(当前脚本文件夹?当前cd/home文件夹?)