I’ve been trying to make it where I can download a .exe file from the web, read it, and write it to a file locally, and then execute.
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!");
Although I know that doesn’t work due to using BufferedWriter, and i’m not sure if it runs the exe.
For the downloading part, you’ll need to use binary read/write. See this for further details: Working unbuffered streams.
For the executing part, the problem is that the
Runtime.exec()-method can’t launch your executable file.At least under Linux (I can’t test it on Windows), you’ll need the full path to the executable file (or use
./[file]when the file is in the same directory as your application) to be able to execute it.Only giving the command works for executables which are part of your systems PATH-variable.