我正在审查许多不同的Java程序,并试图弄清楚如何仅更新对程序名称的引用一次而不是两次。 有没有办法在单个终端命令中使用变量?:S
我正在尝试改进的命令是这种形式:
javac Main.java && java Main
我只想更改对 Main 的引用一次,而不是每次键入两次。
像这样用一行来做到这一点:
PC=com/mycompany/Main && CN=$(echo $PC | tr / .) && javac $PC.java && java $CN
即使您有一个包名称,这也将起作用,因为它会自动将/
替换为.
以正确构建类的完整限定名。在上面的示例中,它将编译类com/mycompany/Main.java
然后启动com.mycompany.Main
PC:指你的类的相对路径没有.java
,这是你需要改变的
CN:指从上一个路径自动生成的类的完整限定名
您可以将其设置为环境变量。像这样,
export CLS=Main # Change Main once
javac $CLS.java && java $CLS # Will use "Main"
有时最简单的方法是最好的。 听起来你有很多程序要编译和运行。 我建议你把这些名字写成一个文本文件,如下所示:
Main
Foo
Bar
然后在编辑器中使用一些搜索和替换来使文本如下所示:
javac Main.java && java Main
javac Foo.java && java Foo
javac Bar.java && java Bar
|然后只需选择要运行的行并将它们粘贴到终端中即可。
当然,这取决于您预期的工作流程,但有时最简单的就是最好的。