【发布时间】:2013-09-15 19:00:53
【问题描述】:
我正在尝试测试服务器是否可访问。我正在使用 ssh 跟踪来自不同服务器的日志文件,并使用来自以下 web http://www.ganymed.ethz.ch/ssh2/ 的 java Ganymed 连接到服务器。因此,我试图找到一种 ping 服务器的简单方法,因为我想向用户显示运行和关闭服务器的列表,以便他们在尝试跟踪服务器上的日志文件时知道自己的状态。
我们将不胜感激。我也尝试过使用 JPingy,但我不确定它是否符合我的要求,因为我收到长消息异常。有什么东西可以用来测试某些服务器是否可以访问,以便我可以更新用户的状态? 以下是我在 JPingy 示例中使用的代码,它向我展示了一些我不理解的奇怪消息。
public class Main {
public static void main(String[] args) {
PingArguments arguments = new PingArguments.Builder().url("google.com")
.timeout(5000).bytes(32).build();
PingResult results = Ping.ping(arguments, Backend.UNIX);
System.out.println(results.ttl());
System.out.println(results.rtt_min());
System.out.println(results.received());
}
}
我得到的例外如下
java.lang.ArrayIndexOutOfBoundsException: 1
at com.googlecode.jpingy.UnixPingResult.matchReceived(UnixPingResult.java:52)
at com.googlecode.jpingy.PingResult.<init>(PingResult.java:79)
at com.googlecode.jpingy.UnixPingResult.<init>(UnixPingResult.java:29)
at com.googlecode.jpingy.Ping$Backend$1.getResult(Ping.java:31)
at com.googlecode.jpingy.Ping.ping(Ping.java:59)
at Main.main(Main.java:13)
Exception in thread "main" java.lang.NullPointerException
at Main.main(Main.java:15)
非常感谢任何形式的帮助,是否可以返回真或假以使用其他库进行连接?
【问题讨论】:
-
请将您从 JPingy 收到的消息添加到您的问题中。
-
嗨 Ireeder,感谢您的快速回复,我更新了例外情况。
-
JPingy only supports Linux and Android。我怀疑您在 Windows 上使用它 - 当我在 Windows 上运行您的代码时,我遇到了与您相同的错误。
-
嗨,卢克,谢谢你的回复,现在我明白为什么没有 Backend.Windows 参数了,因为我正忙着解决这个问题,非常感谢你的回复,你是对的,我正在使用 Windows,所以没有其他我可以使用的库可以简单地测试java中服务器的可达性
-
我不知道任何可以执行 ping 的 Java 库。在 Windows 上执行此操作的常用方法是在子进程中运行
ping.exe,但这种方法很难描述为简单。