java 原生 ping
时间: 2023-11-18 14:55:37 浏览: 33
Java原生的ping实现可以使用Runtime类的exec方法来执行ping命令。例如,可以使用以下代码来ping一个IP地址:
引用:Process p = Runtime.getRuntime().exec("ping -c 1 -w 5 " + ip);
这个命令将会ping一个IP地址,并且只发送一个ICMP包,等待5秒钟后超时。如果需要更多的控制,可以使用ICMP4j这个Java库,它提供了一个简单干净的API来执行ping操作,并且支持多种操作系统。
引用:ICMP4j 是 Java 的 ICMP ping 实现,具有简单干净的 API。 原生支持 Linux/Mac/Solaris/Windows。 如果可以提供其他原生实现,请联系作者!
相关问题
java 原生 ScheduledExecutorService 封装
Java原生的ScheduledExecutorService是一个用于定时执行任务的接口,它是ExecutorService的子接口。它提供了一种方便的方式来执行定时任务,可以在指定的时间间隔内重复执行任务,也可以在指定的延迟时间后执行任务。
下面是一个简单的封装示例:
```java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class TaskScheduler {
private ScheduledExecutorService executorService;
public TaskScheduler() {
executorService = Executors.newScheduledThreadPool(1);
}
public void scheduleTask(Runnable task, long initialDelay, long period) {
executorService.scheduleAtFixedRate(task, initialDelay, period, TimeUnit.MILLISECONDS);
}
public void stop() {
executorService.shutdown();
}
}
```
在上面的示例中,我们创建了一个TaskScheduler类来封装ScheduledExecutorService。它使用了Executors类的newScheduledThreadPool方法来创建一个ScheduledExecutorService实例。
scheduleTask方法用于添加定时任务,它接受一个Runnable对象作为任务,以及初始延迟时间和重复执行的时间间隔。任务将在初始延迟时间后开始执行,并且每隔指定的时间间隔重复执行。
stop方法用于停止定时任务的执行,它调用了ScheduledExecutorService的shutdown方法来关闭线程池。
使用示例:
```java
public class Main {
public static void main(String[] args) {
TaskScheduler scheduler = new TaskScheduler();
Runnable task = () -> {
// 执行任务的逻辑
System.out.println("Task executed");
};
scheduler.scheduleTask(task, 0, 1000); // 每隔1秒执行一次任务
// 等待一段时间后停止任务的执行
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
scheduler.stop();
}
}
```
上面的示例中,我们创建了一个TaskScheduler实例,并定义了一个任务task,然后使用scheduleTask方法将任务添加到定时任务中。任务将每隔1秒执行一次。在等待5秒后,我们调用stop方法停止任务的执行。
希望以上内容能够帮助到你。
java原生http请求
Java原生HTTP请求可以使用OkHttp或CloseableHttpClient来实现。使用OkHttp需要引入okhttp-3.10.0.jar的依赖,使用CloseableHttpClient则需要引入httpclient-4.5.6.jar的依赖。以下是一个使用OkHttp进行HTTP请求的示例代码:
```java
import com.alibaba.fastjson.JSON;
import okhttp3.*;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class HttpTest {
public static void main(String[] args) throws IOException {
String url = "http://10.30.10.151:8012/gateway.do";
OkHttpClient client = new OkHttpClient();
Map<String, String> paraMap = new HashMap<>();
paraMap.put("yybh", "1231231");
RequestBody requestBody = new MultipartBody.Builder()
.addFormDataPart("consumerAppId", "tst")
.addFormDataPart("serviceName", "queryCipher")
.addFormDataPart("params", JSON.toJSONString(paraMap))
.build();
Request request = new Request.Builder()
.url(url)
.post(requestBody)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.build();
Response response = client
.newCall(request)
.execute();
if (response.isSuccessful()) {
System.out.println("result: " + response.body().string());
} else {
throw new IOException("Unexpected code " + response);
}
}
}
```