对于 Java,我一直依赖于使用 IDE,并且希望使用终端来了解更多信息。
我有一个名为 test.java 的 Java 应用程序。依赖其他jar文件编译运行。
我的应用程序的第一行也创建了一个包如下
包package1;
现在,当我编译它时:
javac -cp .:"JAR 文件路径在这里"test.java
它编译得很好。但是,当我尝试按如下方式执行它时:
java -cp .:"JAR FILE PATHS HERE"测试
我得到错误错误:无法找到或加载主类测试
如果我不使用 package package1;
在我的应用程序中创建包,它会执行正常。
如果我确实创建了 package1,我该如何执行它?使用路径 package1/test 不起作用
您需要仔细检查您的文件夹结构 - 如您所知,当直接使用文件夹(而不是 jar 文件)时,包是类路径下的子文件夹(请参阅完整文档,或阅读下面的内容一个例子)。
这意味着,在您的示例中,您应该具有以下文件夹结构:
workingFolder
\- package1
\- Test.java
\- Test.class
从workingFolder
,运行javac package1/Test.java
;在 package1
下生成 Test.class
。
要运行,请从 workingFolder
运行 java -cp 。 package1.Test
.
文件夹workingFolder
在classpath中,所以package1.Test
解析为package1/Test.class
; package1
文件夹基本上 package1
包。
编辑 并且测试类必须在正确的包中,例如:
package package1;
class Test {
public static void main(String[] v) {
System.out.println("hw!");
}
}
另请参阅 https://docs.oracle.com/javase/tutorial/getStarted/cupojava/index.html
以了解有关如何使用命令编译和运行 Java 程序的详细说明行。