使用Java编写一个下载jar包到windows电脑,先停止之前的服务然后再启动新的服务
时间: 2024-04-06 21:32:32 浏览: 10
好的,您可以参考下面的Java代码来实现下载Jar包、停止服务、启动新服务的操作:
```java
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
public class DownloadAndRunJar {
public static void main(String[] args) throws IOException, InterruptedException {
String jarUrl = "http://example.com/myapp.jar"; // jar包下载地址
String jarName = "myapp.jar"; // jar包名称
String downloadPath = "C:\\Downloads\\"; // jar包下载路径
String serviceName = "my-service"; // 服务名称
String servicePath = "C:\\Services\\"; // 服务路径
// 停止服务
ProcessBuilder stopPb = new ProcessBuilder("cmd.exe", "/c", "sc", "stop", serviceName);
stopPb.redirectErrorStream(true);
Process stopProcess = stopPb.start();
stopProcess.waitFor();
// 下载jar包
URL url = new URL(jarUrl);
URLConnection conn = url.openConnection();
InputStream in = conn.getInputStream();
FileOutputStream out = new FileOutputStream(downloadPath + jarName);
byte[] buffer = new byte[1024];
int numRead;
while ((numRead = in.read(buffer)) != -1) {
out.write(buffer, 0, numRead);
}
out.close();
in.close();
// 启动服务
ProcessBuilder startPb = new ProcessBuilder("cmd.exe", "/c", "java", "-jar", downloadPath + jarName);
startPb.redirectErrorStream(true);
startPb.directory(new File(servicePath));
Process startProcess = startPb.start();
startProcess.waitFor();
}
}
```
请注意,如果您需要在Windows系统上运行此代码,您需要将`downloadPath`和`servicePath`变量中的路径更改为您的下载目录和服务目录。同时,您需要将`serviceName`变量更改为您的服务名称。