我有一个Main.java
文件,我想运行传递它的程序 test.txt
我知道在命令行中我可以写 javacMain.java
编译后我可以写java Main test.txt
,这将完成运行文件并传递test.txt
如果我希望能够只编写main test.txt
并触发我的Main.class
文件运行,那是可能的,如果是这样的话怎么办?
我有一个Main.java
文件,我想运行传递它的程序 test.txt
我知道在命令行中我可以写 javacMain.java
编译后我可以写java Main test.txt
,这将完成运行文件并传递test.txt
如果我希望能够只编写main test.txt
并触发我的Main.class
文件运行,那是可能的,如果是这样的话怎么办?
添加别名,例如在 mac 下使用以下行编辑您的 .bash_profile
alias main='java main'
不要忘记打开一个新控制台以查看您的别名是否正常工作
(编辑:根据您的评论,让我扩展以添加更多情况)
如果您的目标是让没有安装 Java 的其他人运行您的程序,并且您不希望他们在运行您的应用程序之前安装 Java 运行时环境,那么您需要一个转换 .class 或 .jar 的程序文件转换为您正在使用的平台的本机可执行文件。如何做到这一点已在其他问题中讨论过,例如:Compiling a java program into an executable。本质上,您使用 JCG(GNU Compiler for Java)或 Excelsior JET(商业产品)之类的程序将字节码扩展为内置 mini-JRE 的完整本机代码。
如果您的目标是节省打字,有许多策略。其他人建议使用别名命令,这些命令在 linux 上运行良好。
可以随程序一起提供的稍微更便携的选项是 shell 脚本。当然,shell 脚本只能在安装了 shell 脚本解释器的 linux 或其他操作系统上运行。
这是一个示例 shell 脚本。您将其粘贴到文本编辑器中并将其保存为没有扩展名的 main。$1 传递参数自变量 fyi。
#!/bin/sh
java Main $1
假设您将 shell 脚本命名为“main”而没有扩展名,您main test.txt
现在可以调用来执行您的程序。
如果您在 Windows 上,您可能想要创建一个 Windows 快捷方式,并将快捷方式指向“java Main test.text”,必要时使用完整路径(如果尚未设置路径)。当然,这并不能使每次运行时都易于更改参数,您必须编辑快捷方式。