最近,我必须了解Sublime Text 3,并尝试在其中运行Java.
我在包Java.sublime-package中修改了JavaC.sublime-build.
JavaC.sublime建造:
{
"cmd": ["runJava.sh", "$file_base_name"],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java"
}
Run Code Online (Sandbox Code Playgroud)
我有如下脚本(runJava.sh),我把它放在Java bin文件夹中.
runJava.sh:
[ -f "$1.class" ] && rm $1.class
for file in $1.java
do
echo "Compiling $file........"
javac $file
done
if [ -f "$1.class" ]
then
echo "-----------OUTPUT-----------"
java $1
else
echo " "
fi
Run Code Online (Sandbox Code Playgroud)
Java bin文件夹:
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin
Run Code Online (Sandbox Code Playgroud)
但是,当我构建一个java文件时,我收到一条错误消息,说明....
[Errno 2] No such file or directory: 'runJava.sh'
[cmd: ['runJava.sh', 'Test']]
[dir: /Users/xxxxxxx/Desktop]
[path: /usr/bin:/bin:/usr/sbin:/sbin]
[Finished]
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会显示此消息,因为runJava.sh位于正确的位置,即Java bin文件夹.
这个问题的原因是什么?
Ale*_*lex 12
那是因为你不应该直接用编辑器修改包文件.它们是zip文件,尽管它们没有用于警告用户的扩展名.
要修改插件,您必须转到/ Packages并解压缩Java.sublime-package文件.我将使用linux语法但过程保持不变:
cd <sublime-text3-folder>/Packages
mkdir java
cp Java.sublime-packages java
cd java
unzip Java.sublime-packages
Run Code Online (Sandbox Code Playgroud)
然后使用编辑器修改JavaC.sublime-build以添加以下行(不要忘记最后一行后面的额外逗号)
{
"shell_cmd": "javac \"$file\"",
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java",
"variants":
[
{
"name": "Run",
"shell_cmd": "java $file_base_name"
}
]
}
Run Code Online (Sandbox Code Playgroud)
再次压缩Java.sublime-package中的内容并将其放回Package文件夹中:
zip Java.sublime-package*cp Java.sublime-package ..//Packages
重新启动sublime,现在与Ctrl + B一起构建项目,您可以使用Ctrl + Mayus + B运行它
轻松一步一步:
如果您还没有安装包控件
使用Package Control,安装Package Resource Viewer
打开包控件,输入prv并运行PackageResourceViewer: Open Resource
选择 Java
选择 JavaC.sublime-build
用下面的代码块完全替换构建JSON定义
你完成了!ctrl+b现在应该编译并运行您的Java文件.
构建JSON定义:
{
"cmd": ["javac \"$file_name\" && java \"$file_base_name\""],
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java",
"shell": true
}
Run Code Online (Sandbox Code Playgroud)
有许多解决方案,如果不提供一步一步说同样的事情.所以这是我在使用Sublime Text 3的Mac'16上的体验:
打开终端窗口并执行以下操作:
$ cd/Applications/Sublime\Text.app/Contents/MacOS/Packages/
制作一个临时目录来搞乱.
$ mkdir java
将当前的Java.sublime-package复制到新的java目录并cd到java.
$ cp Java.sublime-package java /
$ cd java
然后,解压缩包以查看内容:
$ unzip Java.sublime-package
现在,编辑构建文件JavaC.sublime-build.如果你有sublime text的命令行脚本:
$ subl JavaC.sublime-build
除此以外,
$ vi JavaC.sublime-build
然后我将以下内容复制到我在Sean Mullen发布的JavaC.sublime-build中:
{
"cmd": ["javac \"$file_name\" && java \"$file_base_name\""],
"shell": true,
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java"
}
Run Code Online (Sandbox Code Playgroud)
之后,保存,并在java目录中输入:
$ zip Java.sublime-package*
将新构建包移动到必需的文件夹(父目录):
$ mv Java.sublime-package ../
更新:4/18/18:对不起,我花了这么长时间来调整这个答案.基于@bumbu的注释,我们需要在删除临时目录之前执行以下命令:
$ cd ..
删除temp java目录:
$ rm -fr java /
并做了.现在构建Java文件现在也将尝试运行它.我更喜欢这种行为,而不是必须做另一个"变体"来运行程序.
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin不在 Sublime 的路径中,如错误消息所示。有两种方法可以解决这个问题。第一个是移动runJava.sh到/usr/bin,或者在那里创建一个符号链接。第二个是像这样改变你的JavaC.sublime-build文件:
{
"cmd": ["runJava.sh", "$file_base_name"],
"path": "/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin:$PATH",
"shell": true,
"file_regex": "^(...*?):([0-9]*):?([0-9]*)",
"selector": "source.java"
}
Run Code Online (Sandbox Code Playgroud)
当构建系统执行时,这会将您的 Javabin文件夹添加到 Sublime 的文件夹中,以便它可以找到. 添加通过 bash 运行命令,这将允许它获取其他环境变量。PATHrunJava.sh"shell": true
| 归档时间: |
|
| 查看次数: |
29260 次 |
| 最近记录: |