我想从 java 程序执行一个批处理文件。
我正在使用以下命令。
Runtime.getRuntime().exec("server.bat");
但问题是我想给出一个相对路径而不是绝对路径,这样我就可以在任何组件上部署该 java 项目。
项目的目录结构如下:
com
|
project
|
------ parser
| |_____ Main.java
|
-------util
|_____ Server.bat
我想从“parser”目录中的“Main.java”文件运行“util”目录中的“Server.bat”文件。
原文由 Amit 发布,翻译遵循 CC BY-SA 4.0 许可协议
当 Java 正在运行并且您使用带有相对路径的 Runtime.exec() 时,相对意味着相对于调用 JVM 的当前用户目录。
这可能有效
如果你从 com 的父目录启动 java。
或者你必须计算一个绝对路径:
我忘记了,请阅读 When Runtime.exec() won’t 。