【问题标题】:Error running Java on Sublime Text [OSX]在 Sublime Text [OSX] 上运行 Java 时出错
【发布时间】:2016-08-03 02:03:02
【问题描述】:

所以我尝试在 sublime 上开始编译和运行 java,如果没有定义包,它可以正常工作。

这个编译并运行:

public class Tester
{
    public static void main(String[] args)
    {
        System.out.println("this is a test.");  
    }
}

但是如果我添加一个包:

package test;

public class Tester
{
    public static void main(String[] args)
    {
        System.out.println("this is a test.");  
    }   
}

我收到了这个错误

Error: Could not find or load main class Tester
[Finished in 6.8s with exit code 1]
[cmd: ['javac "Tester.java" && java "Tester"']]
[dir: /Users/ph/Documents/JAVA/test]
[path: /usr/bin:/bin:/usr/sbin:/sbin]

知道为什么会发生这种情况或如何解决吗?

【问题讨论】:

  • 我认为因为您添加了一个包,所以您必须创建一个名为 test 的文件夹,然后将 Tester.java 放入其中,然后在 test 文件夹之外运行它。 java test.Tester 运行它
  • 是的,这就是它的结构,它总是在一个名为“test”的文件夹中,这就是为什么我添加了包但只在没有它的情况下编译,如果我编译它并从终端运行它就可以了很好。

标签: java macos sublimetext3


【解决方案1】:
  1. [cmd: ['javac "Tester.java" && java "Tester"']]
  2. [目录:/Users/ph/Documents/JAVA/test]

Sublime Text 试图在一个名为“test”的目录中编译你的程序(参见#2),它是包名。它正在该目录中寻找一个名为“Tester.java”的文件(参见#1),但它不存在,因为“Tester.java”在当前目录(“JAVA”)中。

在包中编译 Java 文件时,文件需要位于反映包层次结构的目录结构中。因此,您需要将文件移动到与其包含的包对应的目录。例如,包 example.utils.letters 中的类“A”必须存在于路径 ../example/utils/letters/ A.java

创建文件夹“JAVA/test”并将Tester.java移动到那里,然后运行它。

【讨论】:

  • 感谢您的回答,但我知道如何组织文件,这就是文件所在的位置,这就是我问的原因,因为我不知道为什么 sublime 找不到主类 if它在同一个目录中,实际上当我从终端编译和运行时,它可以正常工作。
猜你喜欢
  • 2018-03-22
  • 2020-04-18
  • 1970-01-01
  • 2019-07-20
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2014-08-26
  • 1970-01-01
相关资源
最近更新 更多