Java 如何从终端执行.jar文件而不指定其名称
如何在不指定名称的情况下从Windows cmd执行文件夹中的.jar文件 我尝试了下面的命令(因为我使用的文件夹*中只有1个jar),但它不起作用(错误:无法访问jarfile*.jar) )Java 如何从终端执行.jar文件而不指定其名称,java,cmd,Java,Cmd,如何在不指定名称的情况下从Windows cmd执行文件夹中的.jar文件 我尝试了下面的命令(因为我使用的文件夹*中只有1个jar),但它不起作用(错误:无法访问jarfile*.jar) ) 我不确定在目录中运行所有内容是否是一个好主意,但您可以: FOR %A IN ("*.jar") DO (java -jar "%~A") 因此,您似乎要问的是如何运行该命令 % java -jar somelongname.jar 作为 避免打字。这是不可
我不确定在目录中运行所有内容是否是一个好主意,但您可以:
FOR %A IN ("*.jar") DO (java -jar "%~A")
因此,您似乎要问的是如何运行该命令
% java -jar somelongname.jar
作为
避免打字。这是不可能的,因为Windows CMD shell或java
命令都不会扩展*.jar
通配符模式
(在Linux/Unix/MacOS上,shell在将参数传递给命令之前进行通配符扩展。在Windows上,这是命令的责任。实际上,java
命令似乎只扩展将传递给应用程序的参数中的通配符;请参阅)
因此,如果您想避免在Windows上键入这些讨厌的字符,您需要执行以下操作:
- 编写一个简单的BAT文件来运行“java-jarsomelongname.jar”,或者
- 编写一个聪明的BAT文件来识别并运行与“*.JAR”匹配的JAR文件,或者
- 使用Powershell
无论如何,我认为你试图做的事是相当危险的。这有点像键入“di*”来运行“dir”。如果路径上有其他更危险的命令要匹配而不是“dir”?“…但它不起作用”,该怎么办。它说什么?@StephenC,它的显示错误:无法访问jarfile*。jar如果您不使用
*
,执行它是否有效?不,只有当我给出jar的全名时,它才会执行,比如“java-jar abc.jar”
% java -jar somelongname.jar
% java -jar *.jar