为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不能正确运行shell文件,但是linux终端下面可以正确运行shell文件?

为什么不能正确运行shell文件,但是linux终端下面可以正确运行shell文件?

慕的地8271018 2023-03-21 19:15:05
JAVA代码如下: try {             Runtime rt = Runtime.getRuntime();                         String str[] = {"/bin/sh", "-c", "/usr/hadoop-0.19.0/bin/load.sh"};                         Process pcs = rt.exec(str);             BufferedReader br = new BufferedReader(new InputStreamReader(pcs.getInputStream()));             String line = new String();             if(textarea.getText()!=null)                 textarea.setText("");             while ((line = br.readLine()) != null) {                 textarea.append(line);                 textarea.append("\n");                          }             try {                 pcs.waitFor();                             } catch (InterruptedException e) {                 System.err.println("processes was interrupted");             }             br.close();                     } catch (Exception e) {               e.printStackTrace();         } Shell文件如下: #!/bin/sh bin/hadoop fs -mkdir input bin/hadoop fs -put input1.txt input 
查看完整描述

2 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

1.rt.exec(str)这个运行时的环境变量和你在Linux下的环境变量可能不一样。 
2.rt.exec(str)这个子进程可能没有权限访问/usr/hadoop-0.19.0/bin/load.sh这个shell文件

查看完整回答
反对 回复 2023-03-24
?
浮云间

TA贡献1829条经验 获得超4个赞

是你的目录不对,用绝对路径

查看完整回答
反对 回复 2023-03-24
  • 2 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号