如何在这个ubuntu终端命令中引用Main一次:“javac Main.java && java Main”?

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

我正在尝试改进的命令是这种forms: 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 

|然后只需选择要运行的行并将其粘贴到终端中。

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

Interesting Posts