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

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 

慕的地8271018
浏览 135回答 2
2回答

qq_笑_17

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

浮云间

是你的目录不对,用绝对路径
打开App,查看更多内容
随时随地看视频慕课网APP