首页 > 解决方案 > 如何使 Sublime 编译文件到特定目录?

问题描述

我的老师给了我们一个他自己编写的脚本,供我们用来编译 Java。我以特定的方式组织文件夹(与我们老师的不同),因为我喜欢自己的组织方式。

我的文件夹结构:

prg/
├─ EasyGraphics.java
├─ class/
│  ├─ lab/
│     ├─ lesson/
│        ├─ GraphicsLesson.java
├─ libraries/
   ├─ eg/

他给我们的剧本:

  {
    "cmd": ["javac \"-Xlint:none\" \"-cp\" \".:..\" \"-encoding\" \"utf8\" \"$file_name\" "],   
    "shell": "true",
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",   
    "selector": "source.java", 
    "variants":
    [
      {
        "name": "Run",
        "cmd": ["java \"-cp\" \".:..\" \"$file_base_name\" "],
        "shell": "true"
      }
    ]
  }  

当我将 EasyGraphics 放在不同的文件夹中时,该脚本给我带来了麻烦,因此我将其编辑为:

"cmd": ["javac \"-Xlint:none\" \"-cp\" \"./../../../.\" \"-encoding\" \"utf8\"
"cmd": ["java \"-cp\" \"./../../../.\" \"$file_base_name\" "]

当我编译GraphicsLesson.java它时,它会在目录中创建大量文件,prg但我想在其中创建它们/libraries/eg- 我该如何实现?

到目前为止,我已经尝试过:

"cmd": ["javac \"-Xlint:none\" \"-cp\" \"./../../../.:libraries/eg\" \"-encoding\" \"utf8\"
"cmd": ["javac \"-Xlint:none\" \"-cp\" \"./../../../.:/libraries/eg\" \"-encoding\" \"utf8\"
"cmd": ["javac \"-Xlint:none\" \"-cp\" \"./../../../.\/libraries/eg\" \"-encoding\" \"utf8\"

还有更多,但似乎没有任何效果。

任何帮助是极大的赞赏。谢谢。

标签: javalinuxsublimetext3

解决方案


好的,所以我设法弄清楚如何将其提取到单个子目录而不是子目录中的子目录:

    "cmd": ["javac \"-Xlint:none\" \"-cp\" \".:../../.././dir:../dir:../../dir\" \"-encoding\" \"utf8\" \"$file_name\" "],
    "shell": "true",
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",   
    "selector": "source.java", 
    "variants":
    [
      {
        "name": "Run",
        "cmd": ["java -cp .:../../.././dir:../dir:../../dir $file_base_name "],
        "shell": "true"
      }
    ]
  }  

推荐阅读