如何让runtime.exec()在Java中的多操作系统上工作?

发布于 2024-12-17 05:30:33 字数 255 浏览 0 评论 0原文

我在OSX上调用运行时执行时在命令前添加“/bin/bash”、“-c”,例如:

Runtime runtime = Runtime.getRuntime();  
Process process = runtime.exec(new String[] { "/bin/bash", "-c", cmd });  

我知道Windows和Linux是不同的。如何确保我的运行时命令可以在多操作系统上运行?

谢谢。

I call a runtime execution on OSX adding "/bin/bash", "-c" before the command, such as:

Runtime runtime = Runtime.getRuntime();  
Process process = runtime.exec(new String[] { "/bin/bash", "-c", cmd });  

I know that it is different for Windows and Linux. How can I make sure that my runtime command works on multi-OS?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

看轻我的陪伴 2024-12-24 05:30:33

使用类似以下内容:

    String osName = System.getProperty("os.name");
    if(osName.startsWith("Windows")) {
        // windows code
    } else {
        if(osName.startsWith("Linux") {
             // linux code
        } else {
             // mac code
        }
    }

免责声明:这只是方向性的。您仍然需要测试许多极端情况(例如 FreeBSD)才能获得正确的行为。

Use something like:

    String osName = System.getProperty("os.name");
    if(osName.startsWith("Windows")) {
        // windows code
    } else {
        if(osName.startsWith("Linux") {
             // linux code
        } else {
             // mac code
        }
    }

Disclaimer: This is just orientative. There are still many corner cases (e.g. FreeBSD) that you need to test to get correct behavior.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文