首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java sublime.build可以在一个目录中工作,但不能在另一个目录中工作。

Java sublime.build可以在一个目录中工作,但不能在另一个目录中工作。
EN

Stack Overflow用户
提问于 2020-09-12 22:31:56
回答 1查看 34关注 0票数 0

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

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

代码语言:javascript
复制
{
"shell_cmd": "javac $file && java $file_base_name"
}

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

代码语言:javascript
复制
"/Users/(user)/Desktop/Java/Setup/HelloApp.java"

它起作用了。

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

代码语言:javascript
复制
"/Users/(user)/Desktop/Java/Book 1/Chapter 1"

我的文件greeter.javahelloApp2.java无法工作,并给出以下错误:

代码语言:javascript
复制
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

代码语言:javascript
复制
public class HelloApp2 {
    public static void main (String [] args) {
        Greeter myGreeterObject = new Greeter();
        myGreeterObject.sayHello();
    }
}

这是Greeter.java

代码语言:javascript
复制
public class Greeter {
    public void sayHello() {
        System.out.println("Hello World!");
    }
}

为什么会发生这种情况?我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2020-09-12 22:47:29

出于某种绝对奇怪的原因,空格在一个卓越的shell的文件目录中是不可接受的。

我的意思是:

代码语言:javascript
复制
"/Users/(user)/Desktop/Java/Book 1/Chapter 1"

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

代码语言:javascript
复制
"/Users/(user)/Desktop/Java/Book1/Chapter1"

似乎起作用了。

更新

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

代码语言:javascript
复制
{
    "shell_cmd": "javac \"$file\" && java \"$file_base_name\""
}

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63861382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档