Java执行相对于jar的文件

时间:2015-10-01 04:14:09

标签: java file io runtime

我有一个c#控制台应用程序我将发送使用Java的评论,使用此处描述的技术Sending commands to a console application?

我的问题是控制台应用程序位于与jar相同的文件夹中的文件夹中,我无法找到如何相对于与jar相同的目录执行文件。

我在Java中尝试过很多东西,比如

Process pr = Runtime.getRuntime().exec("runtime_libraries/consoleapp.exe");

但它说无法找到该文件。

java.io.IOException: CreateProcess error=2, The system cannot find the file specified

我认为这很简单,但显然不是。

所以我的问题是,如何将相对路径放入Runtime exec?

1 个答案:

答案 0 :(得分:1)

当你遇到这类问题时,你需要做一些初步检查......

  1. 使用System.out.println(System.getProperty("user.dir"));验证您当前的投放位置,并确保它在您预期的位置;
  2. 使用consoleapp.exe
  3. 验证System.out.println(new File("runtime_libraries/consoleapp.exe").exists()));是否存在

    大多数IDE允许您在开发期间更改工作目录。在生产中,您应该确保正确设置工作目录(例如,在Windows下,您可以将快捷方式配置为"在指定位置启动")