请原谅我的困惑,我在 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/