Java 完全限定类名称,从终端运行

标签 java

请原谅我的困惑,我在 Stack Overflow 上搜索过这个主题,但不完全理解答案。我是绿色的。我正在使用 Eclipse 创建我的第一个 Java 程序,它编译并成功运行。

    package com.java24hours;

class Saluton {
    public static void main (String[] arguments) {
        //My First Java program goes here
        String greeting = "Saluton mondo!";
        System.out.println(greeting);
    }
}

所以我尝试在 Mac 上的终端中运行它。我的文件路径是/Users/admin/documents/java/java24/com/java24hours

我尝试在 java24hours 目录“Java Saluton.java”中运行并返回“错误:无法找到或加载主类 Saluton.java”

据我了解,这与软件包有关。我研究了包名称,但不明白完全限定名称如何与类和包一起使用。

虽然它在 IDE 中编译,但我想让它在终端中编译并理解为什么它没有按照我想要的方式编译。

感谢您的耐心等待。

最佳答案

您缺少几个元素。

一个答案和评论指出您还没有编译源代码来生成类文件。这是绝对正确的。 Eclipse 自行完成此操作,并且可能将类文件放入“bin”目录中,尽管我不太确定父文件夹是什么,也许是“/Users/admin/documents/java”。

要从 Eclipse 外部的命令行编译和执行类,最好有一个“构建脚本”来构建类文件并可选择运行您的类。这将使用“Gradle”或“Maven”,或者可能是“Ant”(按照我的偏好降序排列)。

无论如何,当您从命令行执行一个类时,您必须告诉 Java 进程要使用什么“类路径”,然后是要执行的“完全限定”类名。

因此,如果您在“/Users/admin/documents/java/bin”目录中编写了类文件,则可能从“/Users/admin/documents/java”目录运行,并且您将执行以下:

java -cp bin com.java24hours.Saluton

关于Java 完全限定类名称,从终端运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39373431/

相关文章:

java - JPA Criteria API 任意数量的联接/子查询

java - 是否可以创建一个包含项目类和项目依赖项的 "uber"jar 作为带有自定义 list 文件的 jar?

java - CoaSTLine 分形比例

java - 在普通 Spring 中启用 JPA 异常转换

java - Hibernate 查询 where 子句中的 list<t>

java - 用于 fips 的 Bouncy CaSTLe 无法在 Linux 虚拟机上运行

java - 使用 JMeter 生成部分消息流

java - 右键单击 Maven 项目时,Eclipse 不显示作为 Maven 测试运行

java - PageNotFound - noHandlerFound 在 DispatcherServlet 中未找到带有 URI [/SpringSecWebApp/welcome] 且名称为 'mvc-dispatcher' 的 HTTP 请求的映射

java - 获取java文件之间的方法调用次数