Java 做一个;“宏”;运行程序的命令

Java 做一个;“宏”;运行程序的命令,java,command-line,Java,Command Line,我有一个Main.java文件,我想运行通过test.txt的程序 我知道在命令行中我可以编写javacMain.java 编译后,我可以编写javamaintest.txt,这将完成运行文件并通过test.txt 如果我只想编写main test.txt,并让它触发我的main.class文件运行,那么这是可能的,如果是,如何实现呢?取决于您的操作系统。例如,在使用bashshell的Linux上,您可以设置一个函数,将main扩展到java-cp myjar.jar main Linux还可

我有一个
Main.java
文件,我想运行通过test.txt的程序

我知道在命令行中我可以编写javac
Main.java

编译后,我可以编写
javamaintest.txt
,这将完成运行文件并通过
test.txt


如果我只想编写
main test.txt
,并让它触发我的
main.class
文件运行,那么这是可能的,如果是,如何实现呢?

取决于您的操作系统。例如,在使用bashshell的Linux上,您可以设置一个函数,将
main
扩展到
java-cp myjar.jar main

Linux还可以被配置为“理解”Java类作为二进制格式,请直接参阅(Linux内核文档)

如果你在windows上,你必须等待比我更了解这方面的人的回答

祝你好运

添加别名 e、 g.在mac下,使用以下行编辑您的.bash_配置文件

alias main='java main'
别忘了打开一个新控制台,以查看别名的工作情况(编辑:根据您的评论,让我展开以添加更多情况)

如果您的目标是让没有安装Java的其他人运行您的程序,并且您不希望让他们在运行应用程序之前安装Java运行时环境,那么您需要的是一个将.class或.jar文件转换为您正在使用的平台的本机可执行文件的程序。如何做到这一点已在其他问题中介绍,例如:。本质上,您可以使用JCG(GNU编译器for Java)或Excelsior JET(一种商业产品)之类的程序,通过内置的微型JRE将字节码扩展为完整的本机代码

如果你的目标是省去打字,有很多策略。其他人建议使用alias命令,这种命令在linux上运行良好

您可以随程序附带一个更便于移植的选项是shell脚本。当然,shell脚本只能在安装了shell脚本解释器的linux或其他操作系统上运行

下面是一个示例shell脚本。您可以将其粘贴到文本编辑器中,并将其保存为不带扩展名的main。$1传递参数参数fyi

#!/bin/sh
java Main $1
假设您将shell脚本命名为“main”,没有扩展名,您可以调用
maintest.txt
立即执行程序


如果您在Windows上,您可能希望创建一个Windows快捷方式,并将快捷方式指向“javamaintest.text”,必要时使用完整路径(如果尚未设置路径)。当然,这并不能使参数在每次运行时都易于更改,您必须编辑快捷方式。

您没有做错任何事情。:)很酷的问题。不过,它可能与操作系统相关的东西比Java更多,因为您可能需要进行一些shell修改或类似的操作。另请参见[this](),它指向相同的解决方案。您可以创建一条捷径,通过windows下的
Java.exe
传入命令行参数。您只需确保启动上下文指向正确的directoryEP。对于linux/cygwin:OP还应该检查GroovyShell脚本;它们可以以与普通shell脚本类似的方式运行java(+Groovy)代码。参考:。你能扩展一下吗?我应该澄清一下,我需要能够让其他人用main运行我的程序(插入他们想在这里尝试的文件),我不懂shell代码,您提出的解决方案中有什么困难吗?