Java 下载一个exe文件并运行
我一直在尝试从网上下载一个.exe文件,读取它,然后在本地将其写入文件,然后执行Java 下载一个exe文件并运行,java,eclipse,networking,exe,Java,Eclipse,Networking,Exe,我一直在尝试从网上下载一个.exe文件,读取它,然后在本地将其写入文件,然后执行 URL url = new URL("http://www.ddlands.com/downloads/Calc.exe"); URLConnection c = url.openConnection(); BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream())); String lin
URL url = new URL("http://www.ddlands.com/downloads/Calc.exe");
URLConnection c = url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(c.getInputStream()));
String line = "";
File file = new File("analbread"+".exe");
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
while((line = br.readLine()) != null){
bw.write(line + "\n");
}
br.close();
bw.close();
Process r = Runtime.getRuntime().exec("analbread" + ".exe");
System.out.println(r.toString());
System.out.println("WORKS!");
虽然我知道由于使用了BufferedWriter,这不起作用,而且我不确定它是否运行exe。请看一下ClickOnce:
我们已经成功地使用了它。对于下载部分,您需要使用二进制读/写。有关更多详细信息,请参阅此: 对于执行部分,问题是无法启动可执行文件 至少在Linux下(我无法在Windows上测试),您需要可执行文件的完整路径(或者当文件与应用程序位于同一目录下时使用
/[file]
)才能执行它
只有给出命令才适用于系统中的可执行文件。我使用以下命令运行命令行脚本,效果良好。您可以创建一个运行可执行文件的批处理脚本,或者直接使用exec方法运行它-可能传递“cmd”。这将打开一个命令提示符,从中可以运行任何操作
public static void runScript(String batchFile, boolean waitForExit0, int retryTime)
{
try
{
String runString = "cmd /c start " + (waitForExit0?"/wait ":"") + "/MIN " + batchFile;
Process p = Runtime.getRuntime().exec(runString); // /c start /wait
while (true)
{
try
{
int exit = p.exitValue();
if (exit == 0)
{
System.out.println("completed: " + runString);
return;
}
}
catch(Exception e)
{
String s = "";
}
Thread.sleep(retryTime);
}
}
catch(Exception e)
{
String s = "";
}
}
请澄清你的问题是什么。你为什么不试试呢?你是不是在尝试捕获流程的输出?如果是这样,请使用r.getInputSream()。我想下载一个exe,在本地保存,然后运行它,无需用户交互即可通过java运行。我的代码在测试时无法运行,我无法从服务器获取exe的副本server@CheenarOrangez你有这个工作,如果是,请让我知道。我有类似的要求。