Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在批处理可执行文件中使用tab来完成一行?_Java_Batch File_Jar - Fatal编程技术网

Java 如何在批处理可执行文件中使用tab来完成一行?

Java 如何在批处理可执行文件中使用tab来完成一行?,java,batch-file,jar,Java,Batch File,Jar,我正在为一个.jar文件编写一个启动程序脚本,因为出于某种原因,我的许多用户在双击一个.jar时都会遇到问题,即使使用正确的jre和javaw.exe作为默认的软件开启器也是如此。jar将只在java-jar foobar.jar中打开。所以我写了一个脚本来实现这一点,但是每次更新时jar名称都会改变。它将是java-jarfoobar3.0.jarvsjava-jarfoobar4.0.jar。有没有一种方法可以编写一个脚本,它只需执行类似于java-jar foobar TAB的操作,这样它

我正在为一个.jar文件编写一个启动程序脚本,因为出于某种原因,我的许多用户在双击一个.jar时都会遇到问题,即使使用正确的jre和javaw.exe作为默认的软件开启器也是如此。jar将只在
java-jar foobar.jar
中打开。所以我写了一个脚本来实现这一点,但是每次更新时jar名称都会改变。它将是
java-jarfoobar3.0.jar
vs
java-jarfoobar4.0.jar
。有没有一种方法可以编写一个脚本,它只需执行类似于
java-jar foobar TAB
的操作,这样它就可以自动完成名称的其余部分,因为文件夹中只有该名称的文件?

尝试使用
java-jar foobar*.jar
*
是标准的正则表达式通配符,表示任何字符串;在本上下文中,它表示将构成有效路径的任何字符串。请注意,这意味着如果有任何其他jar文件以foobar开头,那么它选择哪一个取决于实现,也就是说,您无法预测它。

您可能需要查看的是如何匹配文件名,而不是搜索“tab”/autocomplete

使用
*
可以解决您的问题,因此该行类似于
java-jarfoobar*.jar
。当然可以在Linux下工作,也可以在Windows下工作。(您没有指定操作系统)

现在,如果有多个文件与该模式匹配,那么这可能会有问题。如果您确定文件夹中只有一个,那么就可以了


另一个建议是不要为每个版本更改jar的名称-将它们放在具有版本名和自述文件或其他内容的zip文件中,并保持基本jar名称不变-这样,用户只需将新版本放到现有文件夹中并覆盖它,而无需更改路径。

可能是%%a in的通配符?
(java)-java%%a/c> >很奇怪,双击.jar文件不起作用。我怀疑用户有一个与.jar扩展相关联的java版本。请考虑使用java Web start分发.jar,这样您就可以保证用户正在运行一个适当的java版本。(此外,您还可以为双击快捷方式提供一个漂亮的图标。)