我本打算给你一个Makefile的片段来回答你,但是它不够通用。无论何时你想编译一个更复杂的程序(比如说2个文件),你都需要编译第二个文件。它可能在一个包中,在这种情况下,你所要求的不再有效。如果你必须处理库,情况也是如此。 由于所有这些原因,我强烈建议您选择一个构建实用程序,make,scons,ant,让我们提一下maven,对于小项目,我发现后面的方法会变得复杂,但是对于java程序,ant是我最好的候选者,最后,您可以只使用ant run,它将运行您的程序,并在需要时重新编译它。请查看带有ant的hello world tutorial。
8条答案
按热度按时间bhmjp9jg1#
alias
不能接受参数,定义一个函数如下:那就用它:
jcar
是java编译和运行的首字母缩写)*dzhpxtsq2#
从Java 11开始,您可以使用单个命令
https://openjdk.java.net/jeps/330
链接:How to compile and run in single command in java
t8e9dugd3#
补充一下enrico.bacis的回答,如果我只是测试一个程序,我个人不喜欢让Program.class文件塞满我的工作空间,所以我会
jcar() { javac $1.java && java $1 && rm $1.class}
此外,我发现捕获
ctrl-c
很有帮助,这样即使我中途结束程序,它仍然会删除.class
6kkfgxo04#
我喜欢将完整的Program.java文件名作为输入参数传递,这样可以方便地自动完成。
下面是notcompletelyrational脚本的编辑版本,它需要
jcar Program.java
这样的命令,而不是jcar Program
:2admgd595#
我最喜欢的解决方案是这样的:
它可以处理各种输入,例如
它可以让你更快地使用Tab键:)
mw3dktmi6#
我本打算给你一个Makefile的片段来回答你,但是它不够通用。无论何时你想编译一个更复杂的程序(比如说2个文件),你都需要编译第二个文件。它可能在一个包中,在这种情况下,你所要求的不再有效。如果你必须处理库,情况也是如此。
由于所有这些原因,我强烈建议您选择一个构建实用程序,
make
,scons
,ant
,让我们提一下maven
,对于小项目,我发现后面的方法会变得复杂,但是对于java程序,ant
是我最好的候选者,最后,您可以只使用ant run
,它将运行您的程序,并在需要时重新编译它。请查看带有ant的hello world tutorial。nqwrtyyt7#
除了enrico.bacis和notcompletelyrational的答案,如何在一个包下运行它并清理包编译的文件:
jcar() { javac -d . $1.java && java ${PWD##*/}.$1 && rm -rf ${PWD##*/}/ }
顺便说一下,这个函数应该分别添加到Mac OS的~/.bash_profile和Linux的~/.bashrc中。
要运行它:
xxls0lw88#
如果你想在一个命令中编译和运行你的Java程序,试试这个:
其中您的文件名为
Driver.java
。这将编译程序,然后按顺序执行它。