【问题标题】:Java sublime.build works in one directory but not in anotherJava sublime.build 在一个目录中工作,但在另一个目录中不工作
【发布时间】:2020-09-12 14:31:55
【问题描述】:

我想问一个关于 sublime 构建配置文件的问题。

我编写了以下 sublime-build 文件来运行 Java 文件:

{
"shell_cmd": "javac $file && java $file_base_name"
}

当我在目录中运行以下文件时

"/Users/(user)/Desktop/Java/Setup/HelloApp.java"

它有效。

但是,当我在目录中运行我的第一个教程文件时

"/Users/(user)/Desktop/Java/Book 1/Chapter 1"

我的文件 greeter.javahelloApp2.java 不起作用并给出以下错误:

javac: invalid flag: /Users/(user)/Desktop/Java/Book
Usage: javac <options> <source files>
use -help for a list of possible options
[Finished in 0.6s with exit code 2]
[shell_cmd: javac /Users/(user)/Desktop/Java/Book 1/Chapter 1/HelloApp2.java && java HelloApp2]
[dir: /Users/(user)/Desktop/Java/Book 1/Chapter 1]
[path: /Users/(user)/anaconda3/bin:/Users/(user)/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public]

我认为 sublime-build 文件应该像我上面的例子一样正常工作。

这是HelloApp2.java

public class HelloApp2 {
    public static void main (String [] args) {
        Greeter myGreeterObject = new Greeter();
        myGreeterObject.sayHello();
    }
}

这是Greeter.java:

public class Greeter {
    public void sayHello() {
        System.out.println("Hello World!");
    }
}

为什么会这样?我该如何解决这个问题?

【问题讨论】:

    标签: java sublimetext3


    【解决方案1】:

    由于某些绝对奇怪的原因,sublime shell 的文件目录中不接受空格。

    我的意思是:

    "/Users/(user)/Desktop/Java/Book 1/Chapter 1"
    

    将文件夹名称更改为不可接受

    "/Users/(user)/Desktop/Java/Book1/Chapter1"
    

    似乎可以工作。

    更新

    我更改了 sublime-build 文件以包含转义引号:

    {
        "shell_cmd": "javac \"$file\" && java \"$file_base_name\""
    }
    

    我不太确定这是如何工作的,所以任何解释都可以接受!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      • 2015-06-16
      相关资源
      最近更新 更多