所以我知道这是一个经常发生的熟悉和众所周知的问题。
大多数情况下,问题是如果类在包中,则用户没有具体说明包。但是我确保我的情况不同。
我尝试了以下
1-我确保项目的所有java文件都在同一个文件夹中(4个java文件,一个主类)
2-我确保所有类都在任何包中
然后我尝试按以下方式运行程序(这是一个风暴问候世界的例子,以防你熟悉它)
1-使用以下命令进行编译(风暴需要jar)
javac -classpath ~/Public/apache-storm-0.9.4/lib/storm-core-0.9.4.jar *.java
2-使用以下命令运行Main class(此处也需要jar,否则我将收到另一个错误)
java -cp ~/Public/apache-storm-0.9.4/lib/storm-core-0.9.4.jar HelloStorm
我得到的是下面的错误
Error: Could not find or load main class HelloStorm
我仔细检查过HelloStorm是主类的名称(没有拼写错误)
我不熟悉从命令行运行框架..所以我可能错过了一些东西,但是搜索类似的问题,阅读oracle文档并尝试不同的方法不幸没有帮助
你的建议是什么?
先谢谢
答案 0 :(得分:0)
如果您正确编写了这样的主要方法,请检查
public class HelloStorm {
public static void main(String[] args) {
}
}
答案 1 :(得分:0)
您将类编译到当前位置,但在运行程序时不使用它。添加它,它将运行良好
java -cp .:~/Public/apache-storm-0.9.4/lib/storm-core-0.9.4.jar HelloStorm
如果您使用的是Windows,则类分隔符为分号。对于Unix,它是冒号。
答案 2 :(得分:0)
虽然您希望从命令行执行java程序,但有以下假设:
要执行该程序,您必须是〜/ Public / classes目录并执行以下命令:
v2 %/% 91
#[1] 5