因此,我正在尝试编写一个将可执行的.sh文件,这是我目前正在编写的方式:
Writer output = null;
try {
output = new BufferedWriter(new FileWriter(file2));
output.write(shellScriptContent);
output.close();
} catch (IOException ex) {
Logger.getLogger(PunchGUI.class.getName()).log(Level.SEVERE, null, ex);
}
这样就可以写文件了,但是它不是可执行文件。当我编写可执行文件时,是否可以更改其状态?
编辑:为了进一步说明,我试图使其在默认情况下执行,例如,如果双击生成的文件,它将自动执行。
您需要对其进行chmod修改,并且可能可以通过执行如下系统命令来实现:
实际上,您所需要做的只是解散如下所示的内容:
Runtime.getRuntime().exec("chmod u+x "+FILENAME);
但是,如果您想更明确地跟踪它,可以捕获stdin / stderr,则应类似以下内容:
Process p = Runtime.getRuntime().exec("chmod u+x "+FILENAME);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
我从这里获得的信息:http
:
//www.devdaily.com/java/edu/pj/pj010016/pj010016.shtml
更新:
测试程序:
package junk;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
public class Main{
private String scriptContent = '#!/bin/bash \n echo "yeah toast!" > /tmp/toast.txt';
public void doIt(){
try{
Writer output = new BufferedWriter(new FileWriter("/tmp/toast.sh"));
output.write(scriptContent);
output.close();
Runtime.getRuntime().exec("chmod u+x /tmp/toast.sh");
}catch (IOException ex){}
}
public static void main(String[] args){
Main m = new Main();
m.doIt();
}
}
在Linux上,如果打开文件浏览器并双击/tmp/toast.sh并选择运行它,它将生成一个文本文件/tmp/toast.txt,文字为“ yeah
toast”。我认为Mac会做同样的事情,因为它是BSD的内幕。
问题内容: 我将如何执行.SH文件(这是localhost,没有远程连接或其他任何内容)?当我进行搜索时,我看到了很多其他东西,但这些似乎没有用。 这是Java6。同样重要的是,SH所做的只是在移动两个文件夹。 谢谢! 问题答案: 您可以使用ProcessBuilder
问题内容: 我将如何执行.SH文件(这是localhost,没有远程连接或其他任何内容)?当我进行搜索时,我看到了很多其他东西,但这些似乎没有用。 这是Java6。同样重要的是,SH所做的只是在移动两个文件夹。 谢谢! 问题答案: 您可以使用ProcessBuilder
本文向大家介绍从头学Python之编写可执行的.py文件,包括了从头学Python之编写可执行的.py文件的使用技巧和注意事项,需要的朋友参考一下 Python可是真强大。但他具体是怎么强大的,让我们一点一点来了解吧(小编每天晚上下班回家会抽时间看看教程,多充实下自己也是好的)。 废话不多说,就讲一下这个背景吧: 事情是这个样子的~本着好学的精神,咱就买了本书,学习python结果呢,发现pyth
问题内容: 每个人,如何为Eclipse Helios中用Java编写的程序创建可执行文件?我的意思是创建一个小图标,使其只能通过双击其图标来启动程序,谢谢事先 编辑, 我的意思是Windows可执行文件 问题答案: 在eclipse中导出.jar。(如何) 使用JSmooth (信息)制作一个.exe文件。(如何)
我正在使用包含所有maven配置、密钥、maven命令和所有内容的sh文件,我想从Dockerfile内部执行这个sh文件,以便在运行容器时执行sh文件。 这是我的Docker文件的外观: DockerTest。sh文件如下所示。 当我创建docker图像并运行该图像时,它显示了这个错误。我试过很多东西,但仍然不起作用,这表明了这个错误 尚未为此生成指定目标。您必须以以下格式指定有效的生命周期阶段
以下是我的cmake代码: 我尝试从链接中合并步骤,但没有工作,并得到以下错误: /usr/bin/ld:尝试动态对象的静态链接`/usr/lib/x86_64-linux-gnu/libglu.so'collect2:错误:ld返回1退出状态src/cmakefiles/wwest-export-app.out.dir/build.make:774:recipe for targe'bin/ww