ST3 - 在 java 中构建系统支持包

ST3 - Build System Supporting packages in java

这是我的情况: 我在名为 "JavaProgs2" 的文档中有一个项目文件夹 它有许多 .java 文件,1 个名为 "Classes" 的类路径目录和 2 个包(目录)"myPack1" 和 "myPack2",其中有文件 "Parent.java" 和 "Child.java" 分别。 "Child.java" 从 "Parent.java" 导入一个方法 我在 ST3 中的 java 构建系统是:

{
    "cmd": ["javac","-d","$folder/Classes", "$file"],
    "working_dir":"$folder",
    "path": "D:/Program Files/Java/jdk1.8.0_91/bin",
    "shell": true,
    "variants": [

        {   
            "cmd": ["start","cmd", "/k", "java", "$file_base_name"],
            "working_dir":"$folder/Classes",
            "shell": true,
            "name": "Run"
        }
    ]
}

我编译任何 .java 文件都没有问题,无论是在包中还是在项目文件夹中。 但是,当 运行 文件时,我得到 "could not find or load..." 错误。 那么有没有替代 "java", "$file_base_name" 的方法,它会在需要从 working_dir 向 CMD 发送命令时发送 java <package name>.<classname> 之类的命令? 也许我可以在构建系统中使用 $folder_name.$file_base_name 之类的东西

我不想使用 IDE。


编辑:

我想编辑构建系统的 运行 变体,为此我需要以下帮助: 有没有办法像这样剥离路径 D:\Users\Horcrux\Documents\JavaProgs2\Classes\myPack1\Parent.class 只是 myPack1/Parent 或类似的 D:\Users\Horcrux\Documents\JavaProgs2\Classes\myPack1\blahblah\abc\Test.class 只是 myPack1/blahblah/abc/Test ???

IN 仅缩短 "worikng_dir" 之后的路径,直到 $file_base_name 从 Sublime Text 发送到 CMD,并将“\”替换为“/”,其中 working_dir 是

"D:\Users\Horcrux\Documents\JavaProgs2\Classes\"

编辑 2: 好吧,我明白了这么多。我输入这个片段的构建系统非常 close.In:

${file/(D.+?s2\\)||(.java)//g}

向CMD发送命令:

java myPack1\test3\_2ArithmeticOperations

现在我唯一想不通的是如何将“\”替换为“/” 您能否尝试编辑代码段以执行替换?

您的问题相当不清楚,但您可以使用正则表达式找到所有可用的 build system variables in the official docs. You may also be interested in learning about substitutions - link 是代码片段页面,但替换在构建系统中的工作方式相同。