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 是代码片段页面,但替换在构建系统中的工作方式相同。
这是我的情况: 我在名为 "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 是代码片段页面,但替换在构建系统中的工作方式相同。