Java执行文件相对于jar

标签 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

我以为这很简单,但显然事实并非如此。

所以我的问题是,如何将相对路径放入运行时执行中?

最佳答案

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

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

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

关于Java执行文件相对于jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32879343/

相关文章:

javascript - 在 JavaScript 中使用 HTML 文件类型

file - 在 Golang 中写入响应后,HTTP 请求被中止

go - 为什么 io.WriterTo 的 WriteTo 方法返回一个 int64 而不是一个 int?

java - 通过 java.nio channel 发送字符串无法正常工作

python:打开文件,编辑一行,另存为同一个文件

javascript - 服务器发送事件,spring mvc 始终关闭

java - Android TTS 声音泄露服务连接和语音已弃用

java - 域对象和简单的 JavaBeans 应该进行单元测试吗?

java - 根据使用的操作系统在 Swing 中加载图像图标

python - 使用计数器对象计算文件中的单词数