我一直在寻找有关如何执行某种跨平台流程的建议。
我已经编写了我的应用程序的Java和Ruby实现,但它不是特定于语言的问题,更多是特定于平台的问题。
在Ubuntu / usr / bin /上的E.G搜索我做的任何事情
# 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”(显然只有64位的x86),但据我所知,Program Files不在搜索路径中。
对于MacOSX,我不知道如何从命令行执行Mac“应用程序文件夹”而不是“open”命令。但这不是一个问题,因为我真正追求的是HandBrakeCLI,它只是一个普通的可执行文件。但是,HandBrakeCLI未安装到/ usr / bin或/ usr / local / bin(或其任何变体)
我最好的想法是创建一个具有HandBrakeCLI路径的配置文件。如果我走这条路线,那么能够检测到我所处的平台是理想的,但这是另一个问题。我只使用C #ifdef部分而不是Ruby或Java。
我很感激任何和所有的输入。
答案 0 :(得分:1)
您可以使用
获取Java中的当前操作系统System.getProperty("os.name")
在红宝石中:
require 'rbconfig'
puts Config::CONFIG['host_os']
希望这会有所帮助:)