testclassloader.jar包在哪

买包网 2023-02-03 18:16 编辑:admin 173阅读

一、testclassloader.jar包在哪

深刻理解java的配置环境以及java的执行过程对做好开发是十分重要的。 类加载器ClassLoader 便是其中非常重要的概念。 本文简单并演示Java类加载器的一些特点,不妥之处,敬请指出。 背景: A.java 引用 了B.jar 中的一个文件,B.jar 包中的C.class 使用了C.class.getResourceAsStream(/jdbc.xml)获取资源文件。 B.jar 做一个独立的功能的工具,使用方只要提供对应的jdbc.xml 配置文件即可在dev qa prod 各个环境使用啦。 但是问题来了,在web下和java命令行情况下,jdbc.xml 文件放置的位置大不相同,因为web 和java命令下 B.jar 中加载C.class的类加载器不同! 类加载器的分类: 1、启动类加载器(Bootstrap ClassLoader) 这个类有c++语言实现,是虚拟机的一部分。 2、所有其他类加载器。其他类加载器都继承抽象类java.lang.ClassLoader。 做为java的大部分项目,都是有以下三类类加载器加载的: 1、启动类加载器。加载的内容为:<JAVA_HOME/lib 目录中的jar包。 2、扩展类加载器。加载的内容为:java.ext.dirs 系统变量指定的路径中所有类库。实现为:sun.misc.Launcher$ExtClassLoader 实现。 3、应用类加载器。实现为:sun.misc.Launcher$AppClassLoader。负责加载用户类路径上指定的类库。 下面我们看个例子:

Java代码

package org.job.user;

import org.apache.commons.lang.StringUtils;

public class Test {

public static void main(String[] args) {

System.out.println(Thread.currentThread().getContextClassLoader());

System.out.println(StringUtils.class.getClassLoader());

System.out.println(StringUtils.class.getResource(/));

System.out.println(Test.class.getResource(/));

System.out.println(StringUtils.class.getResourceAsStream(/jdbc.xml));

System.out.println(Test.class.getResourceAsStream(/jdbc.xml));

}

}

二、java 某个类型是属于哪个包,用什么查看

在eclipse中,在类型上按f2看信息、F3跳转到、 F4看继承关系

~

三、StringUtils.java 工具类是不是在JDK1.6版本中取消了

在linux下用jdk1.6写了个程序,编译打包后,一切正常,拿到win下,同样是1.6的jdk,居然说什么不兼容的编译类型,非法的magicnumber.只好在linux下用jdk1.4.2这个经典的版本重新编译一下,结果就发现了下面两个不同:1.在1.4.2中,assert是keyword,不可以assert(booleanexpression):(String)这样来用,考试.大提示在1.6中是可以的。在1.4.2下编译时,会给出warning:asofrelease1.4,assertisakeyword,andmaynotbeusedasanidentifier,并且会报错,说是分号的错误(其实是编译器把assert当作identifier来处理报的错)。2.在1.4.2中,不可以如下这样来overrideclone()方法publicNewClassclone(){returnNewClass;}这在1.6中是允许的,也是方便的。在1.4.2中只能publicObjectclone(){return;}于是就有了N多的强制类型转换。

四、stringutils.isblank 在哪个包里

StringUtils在commons-lang-2.2.jar包中:org.apache.commons.lang.StringUtils ;

五、stringutils.hastext 在哪个包

过滤器(Filter)这个只和web.xml有关系, 和IDE无关

你的web文件下/WEB-INF/web.xml 这个文件

比如说有这e799bee5baa6e59b9ee7ad样一个Filter 类文件

//====

package net.coldsky.common.webapp.filter;

import net.coldsky.common.util.StringUtils;

import java.io.IOException;

import javax.servlet.*;

/**

* 字体编码转换过滤器

* */

public class EncodingFilter implements Filter{

private static final String ENCODING = encoding;

private static final String IGNORE_EXIST_ENCODING = ignoreExistEncoding;

private String encoding = ServerConfig.getCharacterEncoding();//默认编码

private boolean ignoreExistEncoding = true; //忽略已存在的编码

public void init(FilterConfig config) throws ServletException {

if(StringUtils.hasText(config.getInitParameter(ENCODING))){

encoding = config.getInitParameter(ENCODING);

}

String value = config.getInitParameter(IGNORE_EXIST_ENCODING);

if (value == null || value.equalsIgnoreCase(true)

|| value.equalsIgnoreCase(yes)) {

this.ignoreExistEncoding = true;

} else {

this.ignoreExistEncoding = false;

}

}

public synchronized void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException {

if (ignoreExistEncoding || request.getCharacterEncoding() == null) {

request.setCharacterEncoding(encoding);

response.setCharacterEncoding(encoding);

request.getAttribute();

response.getCharacterEncoding();

}

chain.doFilter(request, response);

}

public void destroy() {}

}

//====

这样配置web.xml

encodingFilter

net.coldsky.webapp.filter.EncodingFilter

encoding

utf-8

ignoreExistEncoding

true

encodingFilter

*.do