我想使用shell脚本运行java程序。 java程序在p2目录中,其名称为maxconnect4,我已编译它,类名为maxconnect4。我写这样的shell命令:
java p2 / maxconnect4 arg1 arg2 arg3
此shell命令不起作用。 它给出了一个错误:线程“main”中的异常java.lang.NoClassDefFoundError:p2 / maxconnect
但是,我以这种方式编译java程序:
javac p2 / * .java,它有效。
答案 0 :(得分:2)
假设该类已声明package p2;
,那应该有效 - 尽管更标准的方法是在完全限定的类名中使用点而不是斜杠 - java p2.maxconnect
。
如果课程没有包裹声明,请尝试java -cp p2 maxconnect
。您需要指定一个类路径,以便在顶层找到类文件。
如果类有其他包声明,则需要将其放入与其包匹配的文件夹中。
答案 1 :(得分:1)
尝试
java p2.maxconnect4 arg1 arg2 arg3
此外,您可以尝试检查类名,并验证文件p2 / maxconnect4.class是否存在。
答案 2 :(得分:1)
只需使用java -cp p2 maxconnect4 arg1 arg2 arg3
即可。 -cp设置JVM的类路径。编辑:我假设您没有使用maxconnect4的包。