代码之家  ›  专栏  ›  技术社区  ›  Engineer999

Java通过Linux命令行与包

  •  0
  • Engineer999  · 技术社区  · 7 年前

    这个问题已经有了答案:

    我一直依赖于使用IDE一直在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

    如果我不在应用程序中使用 包装1; ,它执行得很好。

    如果我创建了package1 tho,该如何执行它?使用路径package1/test不起作用

    0 回复  |  直到 7 年前
        1
  •  1
  •   Daniele    7 年前

    您需要仔细检查您的文件夹结构-如您所知,当直接使用文件夹(而不是jar文件)时,包是子文件夹 在类路径下 (请参阅完整的文档,或阅读下面的示例)。

    这意味着,在您的示例中,您应该具有文件夹结构:

    workingFolder
        \- package1
            \- Test.java
            \- Test.class
    

    workingFolder 你跑 javac package1/Test.java ;产生 Test.class 在下面 package1 .

    运行,从 工作文件夹 你跑 java -cp . package1.Test .

    文件夹 工作文件夹 在类路径中,所以 package1.Test 决定为 package1/Test.class ; 小精灵 文件夹是 基本上 这个 小精灵 包裹。

    编辑 测试类必须在正确的包中,例如:

    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程序,这是一个很好的解释。

    推荐文章