目录路径:
c:\home\test\src\com\bsoft\conc
我在src
文件夹中有我的java程序,我在conc
文件夹中有我的类文件。
我需要从home
文件夹运行我的java程序。当我运行时我得到错误:
could not find or load main class
答案 0 :(得分:9)
设置此java文件的类路径:
java -cp C:\hello\build\classes com.javahowto.test.HelloWorld
或使用环境变量并从该计算机的任何第三个位置运行它。
答案 1 :(得分:5)
现在是时候阅读classpath
(告诉java编译器在哪里查找要运行的类文件的方法)。
基本上有两种方法来设置类路径
-classpath
或-cp
命令行arg到javac
命令完整参考并阅读以下链接
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/classpath.html
答案 2 :(得分:3)
在我的程序中 com.bsoft.conc 是一个包名,其中将存储已编译程序的类文件。如果我必须从 home 文件夹运行它我们必须指明 java -classpath test \ src com.bsoft.conc。" class-file-name"
这是因为我们需要告诉JVM它必须在哪里查找类文件。
所以,我们必须使用" test \ src" 指定导航到src,然后 类文件位置" com.bsoft.conc.class-file-name"
如果您在高级设置中设置了环境变量,那么如果您在cmd中指定classpath,它也将被覆盖
答案 3 :(得分:2)
我遇到了类似的问题,我试图运行一个Java程序来调用另一个目录中的类中的方法。我阅读了这个页面并将目录添加到了我的类路径中,但我错误地使用了' 〜'在Bash中表示' / home / user / '。
所以这个命令不起作用
java -classpath~ / CurrentDirectory:OtherDirectory program
但是这个命令确实
java -classpath / home / user / CurrentDirectory:OtherDirectory program
答案 4 :(得分:0)
这里的答案与空间问题无关。
如果您的路径中有空格,您必须将其包装在引号内,否则会显示错误:
C:
Program Files
MyProject
src
testpackage
Test.java
target
classes
testpackage
Test.class
package testpackage;
public class Test {
public static void main(String[] args) {
System.out.println("Test");
}
}
java -cp "C:\Program Files\MyProject\target\classes" testpackage.Test
答案 5 :(得分:0)
在Linux中(没有将它们视为包的简单方案)
> parent
|
|- stdlib
| |
| -Library.java
|- Main.java
从父计算机编译> javac -cp ./stdlib:Main.java
从父母运行> java -cp ./stdlib:Main