无法加载主类(Java)
也许这是一个重复的问题,但我就是找不到我要找的答案!我试图在Unix环境中编译和运行java类 我的课程是:无法加载主类(Java),java,Java,也许这是一个重复的问题,但我就是找不到我要找的答案!我试图在Unix环境中编译和运行java类 我的课程是: package tmp.test; import org.jasypt.registry.AlgorithmRegistry; class Algo { public static void main(String[] args) { System.out.println(AlgorithmRegistry.getAllPBEAlgorithms());
package tmp.test;
import org.jasypt.registry.AlgorithmRegistry;
class Algo {
public static void main(String[] args) {
System.out.println(AlgorithmRegistry.getAllPBEAlgorithms());
}
}
文件位于路径/tmp/test/
中。现在,我使用以下命令编译该类:
javac -cp jasypt-1.9.3.jar Algo.java
java -cp jasypt-1.9.3.jar Algo
JAR文件位于同一目录中。它编译得很好。但当我使用命令运行类文件时:
javac -cp jasypt-1.9.3.jar Algo.java
java -cp jasypt-1.9.3.jar Algo
我得到一个错误:
错误:找不到或加载主类Algo
我正在执行路径/tmp/test/
中的所有命令
我试过:
java -cp jasypt-1.9.3.jar tmp.test.Algo
及
两者都抛出相同的错误
我不确定我做错了什么。起初我认为这是访问问题。因此,我使用chmod
将所有内容更改为777。一切似乎都很好。你能告诉我这里缺少什么吗?tl;博士
使用开关-d
进行编译,然后使用类的完全限定名运行它
按如下方式编译该类:
javac -d . -cp jasypt-1.9.3.jar Algo.java
java -cp jasypt-1.9.3.jar tmp.test.Algo
开关-d
指定放置生成的类文件的位置,
表示当前目录
按如下方式运行该类:
javac -d . -cp jasypt-1.9.3.jar Algo.java
java -cp jasypt-1.9.3.jar tmp.test.Algo
我正在执行路径/tmp/test/
这就是问题所在。你需要比tmp高出一级,而不是在里面。然后是命令行
java-cp/path/to/jasypt-1.9.3.jar tmp.test.Algo
应该有用。如果您坚持从类路径内的子目录启动Java,您可以做这件非常做作的事情:
java-cp/path/to/jasypt-1.9.3.jar:../。。tmp.test.Algo
试试tmp.test。Algo@tibetiroka它也试过了,但仍然抛出同样的错误。试着将Algo公开class@tibetiroka不幸的是,这是一样的!:(@Sam-Do作为一个新文件夹中的建议。如果有任何疑问/问题,请随时发表评论。我尝试了它,但它引发了相同的异常。但它让我非常接近。谢谢!我绑定了第一个命令,它引发了相同的错误。在我转到外部目录后。jasypt.jar的路径导致了问题。但是第二个命令w工作做得很好。谢谢。但老实说,。/..
到底在这里做什么?一点解释就好了。@Sam-“一点解释就好了。”-试着读一下:。
表示父目录(就在您现在所在的位置的正上方).。/..
是父目录。我认为您不仅是编程新手,还是UNIX或Windows命令行新手,不是吗?请耐心等待,了解更多基础知识后,您将了解更多。