This question already has answers here:
Closed 8 months ago.
How do I run a Java class in a package?
(4个答案)
我一直依赖于在Java中使用ide,并希望使用终端了解更多。
我有一个名为test.Java的Java应用程序。它依赖于其他jar文件来编译和运行。
我的应用程序的第一行还创建了一个包,如下所示
现在,当我用以下方法编译这个:
它汇编得很好。但是,当我尝试按如下方式执行时:
我得到错误
如果我不使用
如果我创建了package1 tho,该如何执行它?使用路径package1/test不起作用
从
要运行,请从
文件夹
编辑并且测试类必须在正确的包中,例如:
另外,有关如何使用命令行编译和运行Java程序的详细说明,请参见
(4个答案)
我一直依赖于在Java中使用ide,并希望使用终端了解更多。
我有一个名为test.Java的Java应用程序。它依赖于其他jar文件来编译和运行。
我的应用程序的第一行还创建了一个包,如下所示
package package1;
现在,当我用以下方法编译这个:
javac -cp .:"JAR FILE PATHS HERE" test.java
它汇编得很好。但是,当我尝试按如下方式执行时:
java -cp .:"JAR FILE PATHS HERE" test
我得到错误
Error: Could not find or load main class test
如果我不使用
package package1;
在我的应用程序中创建包,它执行得很好。如果我创建了package1 tho,该如何执行它?使用路径package1/test不起作用
最佳答案
您需要仔细检查您的文件夹结构—如您所知,当直接使用文件夹(而不是jar文件)时,包是类路径下的子文件夹(请参阅完整的文档,或阅读下面的示例)。
这意味着,在您的示例中,您应该具有文件夹结构:
workingFolder
\- package1
\- Test.java
\- Test.class
从
workingFolder
开始,运行javac package1/Test.java
;在Test.class
下生成package1
。要运行,请从
workingFolder
运行java -cp . package1.Test
。文件夹
workingFolder
位于类路径中,因此package1.Test
被解析为package1/Test.class
;package1
文件夹基本上是package1
包。编辑并且测试类必须在正确的包中,例如:
package package1;
class Test {
public static void main(String[] v) {
System.out.println("hw!");
}
}
另外,有关如何使用命令行编译和运行Java程序的详细说明,请参见
https://docs.oracle.com/javase/tutorial/getStarted/cupojava/index.html
。09-11 17:47