这是我的情况: 我在名为“JavaProgs2”的文档中有一个项目文件夹 它有许多.java文件,1个类路径目录,名为“Classes”& 2个包(目录)“myPack1”和“myPack2”,分别有“Parent.java”和“Child.java”文件。 “Child.java”从“Parent.java”导入方法 我在ST3中的java Build System是:
{
"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文件时都没有问题,无论是在包中还是在项目文件夹中。
但是,当运行文件时,我得到“无法找到或加载...”错误。
那么
"java", "$file_base_name"
是否有任何替代品,当从work_dir需要CMD时,它会发送像
java <package name>.<classname>
这样的命令?
也许有类似$folder_name.$file_base_name
的东西我可以在构建系统中使用
我不想使用IDE。
编辑:
我想编辑我的构建系统的RUN变体,因为我需要这个帮助:
有没有办法去除路径之类的
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
???
简而言之只有路径“worikng_dir”之后直到$ file_base_name从Sublime Text发送到CMD并将“\”替换为“/”,其中working_dir是
"D:\Users\Horcrux\Documents\JavaProgs2\Classes\"
编辑2: 好吧,我想出了这么多..它非常接近。在构建系统中我输入了这个片段:
${file/(D.+?s2\\\\)||(.java)//g}
将此命令发送给CMD:
java myPack1\test3\_2ArithmeticOperations
现在我唯一不知道的是如何将“\”替换为“/” 您能否尝试编辑片段以执行替换?
答案 0 :(得分:0)
您的问题相当不明确,但您可以在非官方文档中找到所有可用的build system variables。您可能还有兴趣使用正则表达式了解substitutions - 链接指向片段页面,但替换在构建系统中的工作方式相同。