运行 Java 程序,安装 Oracle JDK

运行 Java 程序,安装 Oracle JDK

我最近安装了 Oracle JDK,设置了环境变量。一切正常。

java -version在终端上

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

我有一个简单的Hello.java程序,我想在终端上运行。

package com.company;

public class Hello {

    public static void main(String[] args) {
    System.out.println("hello, world");
    }
}

我编译并Hello.class生成文件,在.../out/.../com/company/..

在我的 IDE 中运行良好,但最终我必须从终端运行。cd-ed 到 Hello.class 目录。

java Hello

给出以下错误信息。

Error: Could not find or load main class Hello

我怎样才能让它从终端运行。

答案1

将以下内容复制到名为 Hello.java 的脚本中:

package com.company;
public class Hello {
    public static void main(String[] args) {
    System.out.println("hello, world");
    }
}

-d以下命令中的选项将创建适当的目录层次结构。使用以下命令编译 Java 程序:然后javac -d . Hello.java使用以下命令运行它:

java com.company.Hello

答案2

产生错误的问题

Java 在您的指令指定的路径中查找您的应用程序package。在本例中com.company

您可以通过注释掉包指令来编译该简单程序,在没有包的情况下编译它,或者创建路径并通过完整路径调用它。

$ mkdir -p com/company
$ mv Hello.class com/company/
$ java com/company/hello
hello, world

如果您package com.company;通过注释掉该行来删除它,它将按照您已经尝试过和期望的方式工作。

如果你有一个大型项目,其中包含多个用于存放类文件的文件夹,则可以使用 jar 管理器程序或命令行版本创建一个你好文件。

你的集成开发环境提供上面指定的路径和其他详细信息。您可以使用以下方式手动创建此环境以运行命令(以及在存档中包含多个类和包)命令。

使用Jar命令创建jar程序

您可以创建 Hello 应用程序以按预期运行,并使用此方法包含路径类型:

创建路径

$ mkdir -p com/company

将您的类文件放在包行的路径中:

$ mv Hello.class com/company

创建清单文件来指示main class位置

清单.txt:

Manifest-Version: 1.0
Main-Class: com.company.Hello

跑过创建包的命令

$ jar cfm test.jar manifest.txt com/

现在您将创建一个新文件,名为测试文件. 第二个参数可以命名为任何名称,包括你好要不就你好。新文件可以通过多种方式运行:

$ java -jar test.jar
$ ./test.jar

如果你已经使用第二个参数创建了 jar 文件hello,那么你可以使用以下命令运行它:

$ ./hello

您还可以重命名java.jar文件创建后可以重命名为任意名称,然后以此名称运行它。

运行 Java 类非常受限制,因为它必须通过编译它的类名来运行。

要以不带“-jar”参数的命令形式运行 jar 文件,您必须更改权限位(chmod +x Hello.jar)。

Jar 命令详细信息

本例中的 jar 参数是:

    -c 创建新的档案
    -f 指定档案(jar 文件名)
    -m 包含指定清单文件中的清单信息

Jar 是作为 JDK 包的一部分安装的。您可以从手册页 ( man jar) 中获取更多使用详细信息,也可以通过不带参数运行它来获取快速帮助。

相关内容