【问题标题】:run linux command from java从java运行linux命令
【发布时间】:2020-07-06 15:39:14
【问题描述】:

我尝试从 jar 文件 运行 linux 命令,但我总是收到此错误:

java.io.IOException:无法运行程序“ls”:错误=13,权限被拒绝。

这是我的代码:

String s;
    Process p;
    String cmd= "ls";

    try {
        Runtime run = Runtime.getRuntime();
        p = run.exec(cmd);
        BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));

        while ((s = br.readLine()) != null){
        System.out.println("line: " + s);
        }

        p.waitFor();
        System.out.println ("exit: " + p.exitValue());
        p.destroy();

    } catch (Exception e) {
        System.out.println(e);
    }

感谢您的宝贵时间。

更新: 对我来说,我的解决方案是:我必须重新安装我的操作系统和 JDK,现在一切正常。

【问题讨论】:

  • 听起来你有一个名为ls 的文件,它不是一个可执行程序。尝试将命令更改为"/bin/ls"
  • 同样的错误:java.io.IOException: Cannot run program "/bin/ls": error=13, Permission denied
  • 试试String cmd= "ls -l";
  • java.io.IOException:无法运行程序“ls”:错误=13,权限被拒绝
  • 从 jar 所在的文件夹运行终端。授予所有权限(读取、写入和执行)-> chmod -R 777 /folder。然后执行jar

标签: java linux jar


【解决方案1】:

希望你熟悉vi。如果没有,请忽略下面给出的第三条命令,只需将 Main.java 文件复制到 /Users/your-user-directory/

cd ~
pwd
vi Main.java
javac Main.java
java Main

Main.java

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) {
        String s;
        Process p;
        String cmd = "ls";

        try {
            Runtime run = Runtime.getRuntime();
            p = run.exec(cmd);
            BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));

            while ((s = br.readLine()) != null) {
                System.out.println("line: " + s);
            }

            p.waitFor();
            System.out.println("exit: " + p.exitValue());
            p.destroy();

        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

【讨论】:

    猜你喜欢
    • 2012-08-27
    • 2012-07-20
    • 1970-01-01
    • 2011-04-11
    • 2013-07-22
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多