内容导读:导航目录:1、现在急需一个能够扫描内存泄漏的java工具,请大家帮帮忙,介绍一下,更好能有详细的说明2、静态代码扫描工具哪个好java3、如何在Java中调用扫描仪的源代码4、fortify怎么扫描java5、...……
导航目录:
- 1、现在急需一个能够扫描内存泄漏的java工具,请大家帮帮忙,介绍一下,更好能有详细的说明
- 2、静态代码扫描工具 哪个好 java
- 3、如何在Java中调用扫描仪的源代码
- 4、fortify怎么扫描java
- 5、请教大神,怎么使用java实现UDP端口扫描
现在急需一个能够扫描内存泄漏的java工具,请大家帮帮忙,介绍一下,更好能有详细的说明
java sdk1.5及以上自带此类工具,叫做jconsole,在bin目录下。
使用 *** 可以参考下面的链接
静态代码扫描工具 哪个好 java
1、 Checkstyle
Checkstyle 是SourceForge的开源项目,通过检查对代码编码格式,命名约定,Javadoc,类设计等方面进行代码规范和风格的检查,从而有效约束开发人员更好地遵循代码编写规范。Checkstyle 提供了支持大多数常见IDE的插件。
2、FindBugs
FindBugs 是由马里兰大学提供的一款开源 Java 静态代码分析工具。FindBugs 通过检查类文件或 JAR 文件,将字节码与一组缺陷模式进行对比从而发现代码缺陷,完成静态代码分析。FindBugs 既提供可视化 UI 界面,同时也可以作为 Eclipse 插件使用。
3、PMD
PMD 是由 DARPA 在 SourceForge 上发布的开源 Java 代码静态分析工具。PMD 通过其内置的编码规则对 Java 代码进行静态检查,主要包括对潜在的 bug,未使用的代码,重复的代码,循环体创建新对象等问题的检验。PMD 提供了和多种 Java IDE 的集成,例如 Eclipse,IDEA,NetBean 等。
4、Jtest
Jtest 是Parasoft 公司推出的一款针对Java语言的自动化代码优化和测试工具,Jtest 的静态代码分析功能能够按照其内置的超过800条的 Java 编码规范自动检查并纠正这些隐蔽且难以修复的编码错误。同时,还支持用户自定义编码规则,帮助用户预防一些特殊用法的错误。
如何在Java中调用扫描仪的源代码
下载一个jar包,放在lib目录下面,然后再把这个jar加入到项目里面就可以了,右键add as libary,就可以引用源代码了
fortify怎么扫描java
Fortify SCA 有两个文件:auditworkbench.cmd和source *** yzer.exe,auditworkbench.cmd是查看静态分析报告的工具,source *** yzer.exe是静态代码分析器。这里我们还看到了一个FindBugs的目录,这是因为这个版本的Fortify集成了此功能,你可以通过传参给source *** yzer.exe调用FindBugs(但我一般不这么做,可以直接使用FindBugs的话,为什么还要通过source *** yzer.exe调呢?)。
开始扫描静态分析,首先CMD进入Java源代码目录,然后“H:\Fortify\source *** yzer.exe -classpath "**/*.jar" -f test.fpr .”,在当前目录得到结果报告test.fpr。
更多Fortify SCA 问题可以咨询我
请教大神,怎么使用java实现UDP端口扫描
给你个UDP服务端与客户端的示例:
服务端代码:
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
public class UDPMulticastServer {
final static int RECEIVE_LENGTH = 1024;
static String multicastHost = "224.0.0.1";
static int localPort = 9998;
public static void main(String[] args) throws Exception {
InetAddress receiveAddress = InetAddress.getByName(multicastHost);
if (!receiveAddress.isMulticastAddress()) {// 测试是否为多播地址
throw new Exception("请使用多播地址");
}
int port = localPort;
MulticastSocket receiveMulticast = new MulticastSocket(port);
receiveMulticast.joinGroup(receiveAddress);
boolean isStop = false;
while(!isStop){
DatagramPacket dp = new DatagramPacket(new byte[RECEIVE_LENGTH], RECEIVE_LENGTH);
receiveMulticast.receive(dp);
String data = new String(dp.getData()).trim();
System.out.println(data);
if("exit".equals(data)){
System.out.println("程序退出");
isStop = true;
}
}
receiveMulticast.close();
}
}
客户端代码:
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
public class UDPMulticastClient {
static String destAddressStr = "224.0.0.1";
static int destPortInt = 9998;
static int TTLTime = 4;
public static void main(String[] args) throws Exception {
InetAddress destAddress = InetAddress.getByName(destAddressStr);
if(!destAddress.isMulticastAddress()){//检测该地址是否是多播地址
throw new Exception("地址不是多播地址");
}
int destPort = destPortInt;
MulticastSocket multiSocket =new MulticastSocket();
// int TTL = TTLTime;
// multiSocket.setTimeToLive(TTL);
byte[] sendMSG = "exit".getBytes();
DatagramPacket dp = new DatagramPacket(sendMSG, sendMSG.length, destAddress , destPort);
multiSocket.send(dp);
multiSocket.close();
}
}