Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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 正在检索windows批处理文件中文件夹的绝对路径_Java_Batch File_Absolute Path - Fatal编程技术网

Java 正在检索windows批处理文件中文件夹的绝对路径

Java 正在检索windows批处理文件中文件夹的绝对路径,java,batch-file,absolute-path,Java,Batch File,Absolute Path,我有一个包含批处理文件的文件夹,还有一个jar文件和JRE。批处理文件应该通过调用JRE来运行jar。我知道会是这样的: <jre-path>/bin/java.exe -jar <jar-path>Executable.jar /bin/java.exe-jar Executable.jar 在批处理文件中,如何检索包含所有这些jar和jre的文件夹的绝对路径?对于这个问题有一个答案:这建议使用%~dp0,但我如何正确地将其用于上面提到的命令?首先,您决定ja

我有一个包含批处理文件的文件夹,还有一个jar文件和JRE。批处理文件应该通过调用JRE来运行jar。我知道会是这样的:

   <jre-path>/bin/java.exe -jar <jar-path>Executable.jar
/bin/java.exe-jar Executable.jar

在批处理文件中,如何检索包含所有这些jar和jre的文件夹的绝对路径?对于这个问题有一个答案:这建议使用
%~dp0
,但我如何正确地将其用于上面提到的命令?

首先,您决定jar和运行脚本之间的相对路径。脚本将使用您已经提到的答案检测其位置。(~dp0给出了目录)


另一种方法是使用launch4j这样的产品。您可以从variable访问安装位置,为用户提供一个漂亮的启动图标,将jre包含在您的包中,等等

jar文件位于同一文件夹中,即没有子目录。所以我想我可以使用
java.exe-jar%mydir%/exectuble.jar
,对吗?另外,是否不需要指定
java.exe
的位置(请记住,在执行批处理文件的机器上可能没有安装JRE)?如果机器上没有java.exe,则无法运行java.exe。请考虑包装你的产品的另一种选择。我只是要求确认,让我测试一下这个问题的代码片段。我编辑了我的答案。如果您只是想要一些java,您可以始终使用没有绝对路径的java.exe。通常,java安装会在system/win32中创建一个虚拟java.exe,该虚拟java.exe将重定向到正确的路径。
mydir=%~dp0 
jardir=%mydir%/ 
..
java.exe -jar %jardir%/exectuble.jar