如何在此 ubuntu 终端命令中仅引用 Main 一次:"javac Main.java && java Main"?

How to reference Main once only in this ubuntu terminal command: "javac Main.java && java Main"?

我正在审查许多不同的 java 程序,并试图弄清楚如何只更新一次而不是两次更新对程序名称的引用。有没有办法在单个终端命令中使用变量? :S

我试图改进的命令是这种形式: javac Main.java && java Main

我只想更改对 Main 的引用一次,而不是每次都输入两次。

您可以将其设置为环境变量。像,

export CLS=Main # Change Main once
javac $CLS.java && java $CLS # Will use "Main"

你可以这样用一行来完成:

PC=com/mycompany/Main && CN=$(echo $PC | tr / .) && javac $PC.java && java $CN

即使您有包名,它也能正常工作,因为它会自动将 / 替换为 .,以正确构建 class 的完整限定名。在上面的示例中,它将编译 class com/mycompany/Main.java 然后启动 com.mycompany.Main

PC:指的是你的class没有.java的相对路径,这个你需要改的

CN:指的是你的class从之前的路径

自动构建的全限定名

有时最简单的方法是最好的。听起来你有一堆程序要编译和 运行。我建议你把这些名字写成文本 文件,像这样:

Main
Foo
Bar

然后在编辑器中使用一些搜索和替换来制作如下文本:

javac Main.java && java Main
javac Foo.java && java Foo
javac Bar.java && java Bar

|然后 select 到 运行 的行并将它们粘贴到终端中。

当然,这取决于您预期的工作流程,但有时最简单的就是最好的。