如何在此 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 到 运行 的行并将它们粘贴到终端中。
当然,这取决于您预期的工作流程,但有时最简单的就是最好的。
我正在审查许多不同的 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 到 运行 的行并将它们粘贴到终端中。
当然,这取决于您预期的工作流程,但有时最简单的就是最好的。