【问题标题】:Cannot run program "adb" from IntelliJ plugin无法从 IntelliJ 插件运行程序“adb”
【发布时间】:2014-10-13 19:35:31
【问题描述】:

我的问题是我想从 Java 代码(我的 IntelliJ 插件)运行 shell 命令:

Runtime.getRuntime().exec("adb devices")

然后我收到 IOException:

无法运行程序“adb”:错误=2,没有这样的文件或目录。

奇怪的是,当我在调试模式下运行它时它可以工作,只有当我将插件部署到真正的 IntelliJ 时它才会损坏。该命令也适用于任何终端。 现在唯一可以使用的是输入带有完整路径的命令:

/Users/adamstyrc/utils/adb

但这不是解决方案。如何解决?我的猜测是手动加载 bash PATH 变量将 adb exec 文件添加到项目中,但这不是优雅的解决方案。提前致谢!

【问题讨论】:

  • 您确定路径等是否正确。
  • 是的,因为从终端它可以正常工作。我认为 IntelliJ 无法识别路径,但我不知道为什么
  • 好的,我猜你是从同一个终端运行 intellij,所以你可以确定它选择了相同的路径(或者如果你修改了路径变量,你重新启动了终端和 intellij)
  • 现在我看到当我从终端运行我的 IntelliJ 时: > open ../IntelliJ 它确实有效!但通常人们不会那样运行它。那么如何将 PATH 变量加载到这样启动的 IntelliJ 进程中呢?有没有 Java 命令?
  • 我认为您只需要从具有正确路径的终端启动 intellij - 请参阅我的答案,我已尽力解释。

标签: java bash shell intellij-idea intellij-plugin


【解决方案1】:

您需要确保将正确的路径设置传递给 IntelliJ。

例如,如果您修改了路径设置,或者如果您从不同的终端或用户运行 intellij,那么它们可能不正确。

为了确定,请关闭 IntelliJ,启动一个新终端 - 然后验证路径设置 - 并从该终端手动启动 IntelliJ。

【讨论】:

  • 但我不想从终端运行 IntelliJ。我想正常启动它。可以将 adb exec 文件添加到项目中吗?还有其他想法吗?
  • 好吧,当它“正常”启动时,只需要正确的路径等等。我相信,您可以通过编写一个简单的测试来验证 intellij 中的运行时属性。
【解决方案2】:

如果您运行的是 64 位机器,请尝试使用

安装 32 位库
      apt-get install ia32-libs

【讨论】:

  • 这是认真的答案吗?我在 mac osx btw 上运行,这更适合 linux。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-26
  • 1970-01-01
  • 2016-06-20
  • 2012-09-25
  • 2019-10-09
  • 1970-01-01
  • 2015-09-20
相关资源
最近更新 更多