Java如何获取当前的jar包路径以及如何读取j

Java如何获取当前的jar包路径以及如何读取j,第1张

举例:

把配置文件cccxml放到编译路径,如src/comaaaaa下面,然后再根据

String rootPath=XxxxclassgetResource("/")getPath();

获取到编译的根路径,配置文件的地址就是rootPath+"com/aaa/aa/cccxml"

可以使用以下代码来获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名。

import javaioFile;

import javalangreflectMethod;

public class LoopApp {

public static void main(String[] args) throws Exception {

String packageName = "";

File root = new File(SystemgetProperty("userdir") + "\\src");

loop(root, packageName);

}

public static void loop(File folder, String packageName) throws Exception {

File[] files = folderlistFiles();

for (int fileIndex = 0; fileIndex < fileslength; fileIndex++) {

File file = files[fileIndex];

if (fileisDirectory()) {

loop(file, packageName + filegetName() + "");

} else {

listMethodNames(filegetName(), packageName);

}

}

}

public static void listMethodNames(String filename, String packageName) {

try {

String name = filenamesubstring(0, filenamelength() - 5);

Object obj = ClassforName(packageName + name);

Method[] methods = objgetClass()getDeclaredMethods();

Systemoutprintln(filename);

for (int i = 0; i < methodslength; i++) {

Systemoutprintln("\t" + methods[i]getName());

}

} catch (Exception e) {

Systemoutprintln("exception = " + egetLocalizedMessage());

}

}

}

1、i=1是循环的起始值为1,i<=8是循环的进行条件;i++是每次循环结束后i自增1

i的改变怎么引起变化应该能明白了吧

2、Long是类,long是java的基本类型,long有0,没有null,Long有0也有null,可能抛出空指针异常,java有自动封包解包的机制,具体要用那个看情况而定。大部分情况下没区别,会自动转换

答:setAttribute(Stringname,Object):设置名字为name的request的参数值

getAttribute(Stringname):返回由name指定的属性值

getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例

getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组

getCharacterEncoding():返回请求中的字符编码方式

getContentLength():返回请求的Body的长度

getHeader(Stringname):获得>

getHeaders(Stringname):返回指定名字的requestHeader的所有值,结果是一个枚举的实例

getHeaderNames():返回所以requestHeader的名字,结果是一个枚举的实例

getInputStream():返回请求的输入流,用于获得请求中的数据

getMethod():获得客户端向服务器端传送数据的方法

getParameter(Stringname):获得客户端传送给服务器端的有name指定的参数值

getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例

getParameterValues(Stringname):获得有name指定的参数的所有值

getProtocol():获取客户端向服务器端传送数据所依据的协议名称

getQueryString():获得查询字符串

getRequestURI():获取发出请求字符串的客户端地址

getRemoteAddr():获取客户端的IP地址

getRemoteHost():获取客户端的名字

getSession([Booleancreate]):返回和请求相关Session

getServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径

getServerPort():获取服务器的端口号

removeAttribute(Stringname):删除请求中的一个属性

1、在主页面中,通过点击按钮或其他方式打开子页面。

2、子页面中设置保存数据的表单或其他组件。

3、在子页面中设置保存按钮,点击保存按钮触发事件。

4、在事件中获取子页面中的表单数据,并将数据保存到数据库或其他数据存储方式中。

5、保存成功后,可以在子页面中d出提示框,提示用户保存成功,并关闭子页面。

java获取固定IP发来所有的数据包,需要实现网络嗅探的部分功能:

代码如下;

/

 JpcapTipjava

/

package m;

import jpcapPacketReceiver;

import jpcapJpcapCaptor;

import jpcappacket;

import jpcapNetworkInterface;

import jpcapNetworkInterfaceAddress;

//import javanetInetAddress;

//import javanetUnknownHostException;

public class JpcapTip implements PacketReceiver {

public void receivePacket(Packet packet) {

   Systemoutprintln("");

   /IP数据报报文头/

   byte[] l=packetheader;     

   /

   for (int t=0;t<21;t++){

    Systemoutprint(l[t]+"  ");

   }

   /

   String str="";

    Systemoutprint("报文头 : ");

    for (int i=0;i<llength;i++) {

     //str=str+l;

     int m=0;

     m=l[i];

     m=m<<24;

     m=m>>>24;

     str=str+IntegertoHexString(m);

     //Systemoutprint("          "+l[i]);

    }

   Systemoutprintln(str);

   int d=llength;

   Systemoutprintln("首部长度 :"+(d8)+"bit");

  

   /分析源IP地址和目的IP地址/

   /分析协议类型/

   /

   if(packetgetClass()equals(IPPacketclass)) {

    IPPacket ipPacket=(IPPacket)packet;

    byte[] iph=ipPacketoption;

    String iphstr=new String(iph);

    Systemoutprintln(iphstr);

   }

   /

   if(packetgetClass()equals(ARPPacketclass))

   {

    Systemoutprintln("协议类型 :ARP协议");

    try {

     ARPPacket arpPacket = (ARPPacket)packet;

     Systemoutprintln("源网卡MAC地址为 :"+arpPacketgetSenderHardwareAddress());

     Systemoutprintln("源IP地址为 :"+arpPacketgetSenderProtocolAddress());

     Systemoutprintln("目的网卡MAC地址为 :"+arpPacketgetTargetHardwareAddress());

     Systemoutprintln("目的IP地址为 :"+arpPacketgetTargetProtocolAddress());

} catch( Exception e ) {

     eprintStackTrace();

    } 

   }

   else 

    if(packetgetClass()equals(UDPPacketclass))

    {

     Systemoutprintln("协议类型 :UDP协议");

     try {

      UDPPacket udpPacket = (UDPPacket)packet;

      Systemoutprintln("源IP地址为 :"+udpPacketsrc_ip);

      int tport = udpPacketsrc_port;

      Systemoutprintln("源端口为:"+tport);

      Systemoutprintln("目的IP地址为 :"+udpPacketdst_ip);

      int lport = udpPacketdst_port;

      Systemoutprintln("目的端口为:"+lport);

     } catch( Exception e ) {

      eprintStackTrace();

     } 

    }

   else

    if(packetgetClass()equals(TCPPacketclass)) {

     Systemoutprintln("协议类型 :TCP协议");

     try {

      TCPPacket tcpPacket = (TCPPacket)packet;

      int tport = tcpPacketsrc_port;

      Systemoutprintln("源IP地址为 :"+tcpPacketsrc_ip);

      Systemoutprintln("源端口为:"+tport);

      Systemoutprintln("目的IP地址为 :"+tcpPacketdst_ip);

      int lport = tcpPacketdst_port;

      Systemoutprintln("目的端口为:"+lport);

     } catch( Exception e ) {

      eprintStackTrace();

     }

    }

   else

    if(packetgetClass()equals(ICMPPacketclass))

     Systemoutprintln("协议类型 :ICMP协议");

   else

     Systemoutprintln("协议类型 :GGP、EGP、JGP协议或OSPF协议或ISO的第4类运输协议TP4");

/IP数据报文数据/

   byte[] k=packetdata;   

   String str1="";

    Systemoutprint("数据 : ");

     for(int i=0;i<klength;i++) {

      //int m=0;

      //m=k[i];

      //m=m<<24;

      //m=m>>>24;

      //str1=str+IntegertoHexString(m);

      str1 = new String(k);

      //str1=str1+k[i];

      //Systemoutprint("          "+k[i]);

     }

     Systemoutprintln(str1);

   Systemoutprintln("数据报类型 : "+packetgetClass());

   Systemoutprintln("");

}

public static void main(String[] args) throws Exception{

   // TODO 自动生成方法存根

  

   NetworkInterface[] devices = JpcapCaptorgetDeviceList();        //getDeviceList();

   //for (int i =0; i<deviceslength;i++) {

    int a=0;

    //try {

    /本地网络信息/

    byte[] b=devices[1]mac_address; //网卡物理地址

    //}

    //catch() {}

    Systemoutprint("网卡MAC : 00");   

    for (int j=0;j<blength;j++){

     //a=a<<8;

     a=b[j];

     a=a<<24;

     a=a>>>24;

     Systemoutprint(IntegertoHexString(a));

    }

    Systemoutprintln();

    NetworkInterfaceAddress[] k=devices[1]addresses;

   

    //Systemoutprintln("网卡MAC : "+IntegertoHexString(a));

    for(int n=0;n<klength;n++) {

     Systemoutprintln("本机IP地址 : "+k[n]address);     //本机IP地址

     Systemoutprintln("子网掩码   : "+k[n]subnet);      //子网掩码

    }

    Systemoutprintln("网络连接类型 : "+devices[1]datalink_description);

   //}

   NetworkInterface deviceName = devices[1];

   /将网卡设为混杂模式下用网络设备deviceName/

   JpcapCaptor jpcap =JpcapCaptoropenDevice(deviceName, 2000, false, 1);           //openDevice(deviceName,1028,false,1);

   jpcaploopPacket(-1,new JpcapTip());

}

}

以上就是关于Java如何获取当前的jar包路径以及如何读取j全部的内容,包括:Java如何获取当前的jar包路径以及如何读取j、java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名、java程序求助!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9291770.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存