WMIC /OUTPUT:C:\ProcessList.txt PROCESS get Caption,Commandline,Processid
星期一, 五月 23, 2011
星期五, 五月 06, 2011
Java WebStart和可执行jar文件如何读取外部jar文件包含的资源。
如何使用classLoad 读取外部jar文件中的资源?
网络运行的Java Webstart的JNLP的写法里和可执行的jar文件里,都包含了对外部jar文件的依赖的语法
比如JNLP 语法:
<jar href="lib/hsqldb.jar"/>
可执行jar文件MANIFEST.MF里包含的语句:
Class-Path:
lib/appframework-1.0.3.jar
lib/swing-worker-1.1.jar
常见的是把图片等其他非class文件组织打包成一个jar文件,方便程序中使用。
在可执行的jar文件中,只需要一行代码就可以得到这些资源。
比如在lib/appframework-1.0.3.jar包含一个打印格式文件jrxml
都放在report/目录下,一个工作单打印文件WorkOrder.jrxml.
必须使用Thread.currentThread().getContextClassLoader()定制的ClassLoader来调用
或this.getClass().getClassLoader()
注意this的意思必须是个运行时的类实例,而不能是静态类的.class.getClass()的方法。
InputStream test=null;
try
{
test = Thread.currentThread().getContextClassLoader().getResourceAsStream("report/WorkOrder.jrxml");
或者:
test =new YouCurrentClassName().getClass().getClassLoader().getResourceAsStream("report/WorkOrder.jrxml");
if(test!=null)
{
InputStreamReader inr=new InputStreamReader(test,"UTF-8");
BufferedReader br=new BufferedReader(inr);
String line="";
while( (line=br.readLine())!=null)
{
System.out.println(line);
}
另外不在classpath里的jar包的资源调用。
可以使用java.net.URL("jar:file://d:/temp/test.jar!");的语法来读取。
public JarFile tJar = null;
public JarURLConnection uc = null;
String resourcepath="image/log.jpg";
URL u = new URL("jar:file:lib/ReportResource_jrxml.jar!/");
uc = (JarURLConnection)u.openConnection();
tJar = uc.getJarFile();
// Enumeration entries = tJar.entries();
// while (entries.hasMoreElements()) {
// ZipEntry entry = (ZipEntry) entries.nextElement();
// System.out.println(entry.getName());
//
// }
input = tJar.getInputStream(tJar.getEntry(resourcepath));
网络运行的Java Webstart的JNLP的写法里和可执行的jar文件里,都包含了对外部jar文件的依赖的语法
比如JNLP 语法:
<jar href="lib/hsqldb.jar"/>
可执行jar文件MANIFEST.MF里包含的语句:
Class-Path:
lib/appframework-1.0.3.jar
lib/swing-worker-1.1.jar
常见的是把图片等其他非class文件组织打包成一个jar文件,方便程序中使用。
在可执行的jar文件中,只需要一行代码就可以得到这些资源。
比如在lib/appframework-1.0.3.jar包含一个打印格式文件jrxml
都放在report/目录下,一个工作单打印文件WorkOrder.jrxml.
必须使用Thread.currentThread().getContextClassLoader()定制的ClassLoader来调用
或this.getClass().getClassLoader()
注意this的意思必须是个运行时的类实例,而不能是静态类的.class.getClass()的方法。
InputStream test=null;
try
{
test = Thread.currentThread().getContextClassLoader().getResourceAsStream("report/WorkOrder.jrxml");
或者:
test =new YouCurrentClassName().getClass().getClassLoader().getResourceAsStream("report/WorkOrder.jrxml");
if(test!=null)
{
InputStreamReader inr=new InputStreamReader(test,"UTF-8");
BufferedReader br=new BufferedReader(inr);
String line="";
while( (line=br.readLine())!=null)
{
System.out.println(line);
}
另外不在classpath里的jar包的资源调用。
可以使用java.net.URL("jar:file://d:/temp/test.jar!");的语法来读取。
public JarFile tJar = null;
public JarURLConnection uc = null;
String resourcepath="image/log.jpg";
URL u = new URL("jar:file:lib/ReportResource_jrxml.jar!/");
uc = (JarURLConnection)u.openConnection();
tJar = uc.getJarFile();
// Enumeration entries = tJar.entries();
// while (entries.hasMoreElements()) {
// ZipEntry entry = (ZipEntry) entries.nextElement();
// System.out.println(entry.getName());
//
// }
input = tJar.getInputStream(tJar.getEntry(resourcepath));
星期四, 五月 05, 2011
判断内部IP地址和外部IP地址(private IP address or public IP Address)
/*
* Judge IP Address is private or public address
*/
public static boolean isInnerIP(String ipAddress){
boolean isInnerIp = false;
long ipNum = getIpNum(ipAddress);
/**
私有IP:A类 10.0.0.0-10.255.255.255
B类 172.16.0.0-172.31.255.255
C类 192.168.0.0-192.168.255.255
当然,还有127这个网段是环回地址
**/
long aBegin = getIpNum("10.0.0.0");
long aEnd = getIpNum("10.255.255.255");
long bBegin = getIpNum("172.16.0.0");
long bEnd = getIpNum("172.31.255.255");
long cBegin = getIpNum("192.168.0.0");
long cEnd = getIpNum("192.168.255.255");
isInnerIp = isInner(ipNum,aBegin,aEnd) || isInner(ipNum,bBegin,bEnd) || isInner(ipNum,cBegin,cEnd) || ipAddress.equals("127.0.0.1");
return isInnerIp;
}
private static long getIpNum(String ipAddress) {
String [] ip = ipAddress.split("\\.");
long a = Integer.parseInt(ip[0]);
long b = Integer.parseInt(ip[1]);
long c = Integer.parseInt(ip[2]);
long d = Integer.parseInt(ip[3]);
long ipNum = a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d;
return ipNum;
}
private static boolean isInner(long userIp,long begin,long end){
return (userIp>=begin) && (userIp<=end);
}
* Judge IP Address is private or public address
*/
public static boolean isInnerIP(String ipAddress){
boolean isInnerIp = false;
long ipNum = getIpNum(ipAddress);
/**
私有IP:A类 10.0.0.0-10.255.255.255
B类 172.16.0.0-172.31.255.255
C类 192.168.0.0-192.168.255.255
当然,还有127这个网段是环回地址
**/
long aBegin = getIpNum("10.0.0.0");
long aEnd = getIpNum("10.255.255.255");
long bBegin = getIpNum("172.16.0.0");
long bEnd = getIpNum("172.31.255.255");
long cBegin = getIpNum("192.168.0.0");
long cEnd = getIpNum("192.168.255.255");
isInnerIp = isInner(ipNum,aBegin,aEnd) || isInner(ipNum,bBegin,bEnd) || isInner(ipNum,cBegin,cEnd) || ipAddress.equals("127.0.0.1");
return isInnerIp;
}
private static long getIpNum(String ipAddress) {
String [] ip = ipAddress.split("\\.");
long a = Integer.parseInt(ip[0]);
long b = Integer.parseInt(ip[1]);
long c = Integer.parseInt(ip[2]);
long d = Integer.parseInt(ip[3]);
long ipNum = a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d;
return ipNum;
}
private static boolean isInner(long userIp,long begin,long end){
return (userIp>=begin) && (userIp<=end);
}
订阅:
博文 (Atom)