Java 如何从终端执行.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 作为 避免打字。这是不可

如何在不指定名称的情况下从Windows cmd执行文件夹中的.jar文件

我尝试了下面的命令(因为我使用的文件夹*中只有1个jar),但它不起作用(错误:无法访问jarfile*.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