Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.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 在文件夹中搜索jar文件的最新版本,并从批处理文件运行它_Java_Windows_Batch File_Command Prompt - Fatal编程技术网

Java 在文件夹中搜索jar文件的最新版本,并从批处理文件运行它

Java 在文件夹中搜索jar文件的最新版本,并从批处理文件运行它,java,windows,batch-file,command-prompt,Java,Windows,Batch File,Command Prompt,我创建了一个简单的批处理文件来运行jar服务器文件。这是两行代码: cd /D %~dp0 java -jar server-0.17.0.jar 问题是服务器文件每隔一段时间就会更新,因此脚本要么无法运行正确的版本,要么无法运行 我的要求是,是否要用最新发布的编号或日期动态替换服务器jar文件 我只知道我可以使用以下方法检索可用的jar文件: dir *.jar 但是不知道如何将命令与katest版本连接起来。谢谢您可以尝试以下脚本: @echo off for /f "delims="

我创建了一个简单的批处理文件来运行jar服务器文件。这是两行代码:

cd /D %~dp0
java -jar server-0.17.0.jar
问题是服务器文件每隔一段时间就会更新,因此脚本要么无法运行正确的版本,要么无法运行

我的要求是,是否要用最新发布的编号或日期动态替换服务器jar文件

我只知道我可以使用以下方法检索可用的jar文件:

dir *.jar

但是不知道如何将命令与katest版本连接起来。谢谢

您可以尝试以下脚本:

@echo off
for /f "delims=" %%x in ('dir /od /b server*.jar') do set latestjar=%%x
java -jar %latestjar%

此脚本中的第二行将latestjar设置为最后创建的文件,该文件的名称符合服务器*.jar模板。

您可以尝试以下脚本:

@echo off
for /f "delims=" %%x in ('dir /od /b server*.jar') do set latestjar=%%x
java -jar %latestjar%

此脚本的第二行将latestjar设置为最后创建的文件,该文件的名称符合服务器*.jar模板。

您可以这样尝试。创建一个文件列表到一个类似dir(star char)server(star char).jar/O:D>server.jar.txt的文件中,然后你有一个按日期排序的服务器文件列表,然后你可以读入该文件并只取第一行,这应该是最新的server.jar。我正在我的移动设备上写这篇文章,希望这能有所帮助……无论谁安装了新版本的.jar文件,都应该更新脚本。或者,他们应该以无版本的名称安装它,例如
server.jar
server-latest.jar
。他们是否使用名为file的版本进行安装,而不是安装或附加安装,取决于您。如果除此之外,您还可以将版本较少的名称作为软链接而不是副本,这很可能是您在Linux上所做的。创建一个文件列表到一个类似dir(star char)server(star char).jar/O:D>server.jar.txt的文件中,然后你有一个按日期排序的服务器文件列表,然后你可以读入该文件并只取第一行,这应该是最新的server.jar。我正在我的移动设备上写这篇文章,希望这能有所帮助……无论谁安装了新版本的.jar文件,都应该更新脚本。或者,他们应该以无版本的名称安装它,例如
server.jar
server-latest.jar
。他们是否使用名为file的版本进行安装,而不是安装或附加安装,取决于您。如果除此之外,您还可以将无版本名称作为软链接而不是副本,这很可能是您在Linux上执行的操作。dir/od/b server*.jar:此命令按日期(/od)排序列出当前目录中的文件,不带标题(/b)。for/f循环执行dir命令的输出,并将文件名(dir的输出并保存在占位符%%x中)分配给latestjar。由于列出的最后一个文件将是循环完成后的最新文件,latestjar的最新文件名为value.dir/od/b server*.jar:此命令按日期(/od)排序列出当前目录中的文件,不带标题(/b)。for/f循环执行dir命令的输出,并将文件名(dir的输出并保存在占位符%%x中)分配给latestjar。因为列出的最后一个文件将是循环完成后的最新文件,latestjar将最新文件名作为值。