我想问一个关于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.java和helloApp2.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!");
}
}为什么会发生这种情况?我该如何解决这个问题呢?
发布于 2020-09-12 22:47:29
出于某种绝对奇怪的原因,空格在一个卓越的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\""
}我不太确定这是如何工作的,所以任何解释都会被接受!
https://stackoverflow.com/questions/63861382
复制相似问题