0

我正在寻找有关如何执行跨平台流程的建议。

我已经编写了我的应用程序的 Java 和 Ruby 实现,但它不是特定于语言的问题,而是特定于平台的问题。

搜索 Ubuntu /usr/bin/ 上的 EG 以查找我所做的任何事情

# Ruby

`HandBrakeCLI #{args}` # works on Ubuntu and likely other linux distros since HandBrakeCLI is in /usr/bin/

对于 windows,它将搜索我正在运行的当前目录。但是,如果将 windows 可执行文件复制到当前目录,则运行时链接错误将导致它崩溃(DLL 不存在)

HandBrakeCLI 的默认安装路径在“Program Files(x86)/HandBrake”中(x86 显然只有 64 位),但据我所知,Program Files 不在搜索路径中。

对于 MacOSX,除了使用“打开”命令之外,我不知道如何从命令行执行 Mac“应用程序文件夹”。但这不是一个问题,因为我真正追求的是 HandBrakeCLI,它只是一个普通的可执行文件。但是 HandBrakeCLI 未安装到 /usr/bin 或 /usr/local/bin (或其中的任何变体)

我最好的想法是制作一个包含 HandBrakeCLI 路径的配置文件。但是,如果我走那条路,那么能够检测到我在哪个平台上将是理想的,但这是另一个问题。一个我只用 C #ifdef 部分完成,而不是在 Ruby 或 Java 中完成。

我将不胜感激任何和所有输入。

4

1 回答 1

1

您可以使用 Java 获取当前操作系统

System.getProperty("os.name")

在红宝石中:

require 'rbconfig'
puts Config::CONFIG['host_os'] 

希望这可以帮助 :)

于 2010-12-20T21:18:16.530 回答