① java web中使用类加载器读取资源和直接使用文件流读取资源有什么区别
建议用ResourceBundle resource = PropertyResourceBundle.getBundle("db");来读取db.properties文件 PropertyResourceBundle是专门读取资源文件的。
② 用java 如何读取配置文件(如:资源文件)中配
java读取配置文件的几种方法如下:
方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来。因为是用ServletContext读取文件路径,所以配置文件可以放入在web-info的classes目录中,也可以在应用层级及web-info的目录中。文件存放位置具体在eclipse工程中的表现是:可以放在src下面,也可放在web-info及webroot下面等。因为是读取出路径后,用文件流进行读取的,所以可以读取任意的配置文件包括xml和properties。缺点:不能在servlet外面应用读取配置信息。
方式二:采用ResourceBundle类读取配置信息,
优点是:可以以完全限定类名的方式加载资源后,直接的读取出来,且可以在非Web应用中读取资源文件。缺点:只能加载类classes下面的资源文件且只能读取.properties文件。
方式三:采用ClassLoader方式进行读取配置信息
优点是:可以在非Web应用中读取配置资源信息,可以读取任意的资源文件信息
缺点:只能加载类classes下面的资源文件。
方法4 getResouceAsStream
XmlParserHandler.class.getResourceAsStream 与classloader不同
使用的是当前类的相对路径
③ java普通方法和静态方法的加载(注意是加载)时机相同吗存储方法耗费内存空间吗
静态方法放在Date数据区 可以直接调用 和STATIC 变量一样的 在内存开始加载的时候就有空间了 普通方法是 程序运行到的时候才开始调用直接用
④ JAVA 加载资源文件的问题
1.
这一句指定的文件的名字,也就是SysConstants这个类中存在一个叫做SYS_PROPERTYNAME的变量,它的值就是sys.properties,也就是这样的
public static String SYS_PROPERTYNAME="sys.properties",你想在加载sys2.properties文件,只需再增加public static String SYS_PROPERTYNAME2="sys2.properties",再用上面的load方法加载即可。也就是p.load(Tools.class.GetClassLoader().getResourceAsStream(SysCOnstants.SYS_PROPERTYNAME2));即可。
2.通过类装载器来装载资源文件,这样就不必写出资源文件的全路径了。
3.加载后的资源文件你可以理解成一个map(类似),等号前边的是key,等号后边的是值。
⑤ Android studio 加载Java和资源文件出错
检查是否编译了项目。Android studio有时候没有编译就会报出没有R文件的错误。
检查带代码中包名是否正确。有时候从其他地方复制代码过来时连带了包名,也会报出R文件找不到。
检查布局文件是否有语法错误。布局文件有语言错误时也会导致R文件错误。
软件抽风了,重建项目试试。
另外可能很多人不知道在哪儿找R文件,Android studio左上角有个选项,一般我们可能是选的Android模式,选择Packages模式找到你的项目,里面就可以看到R文件了
⑥ java中怎么加载oracle数据库
<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.*" %>
<%@ page import="javax.sql.*" %>
java.sql.Connection conn;
ResultSet rs;
Statement stmt;
java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); //装载JDBC驱动程序
conn = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@11.11.11.1:1521:orcl","aaa","bbb"); //连接数据库
stmt=conn.createStatement();
/*
try {
Context ctx = new InitialContext(); //初始化上下文
DataSource ds = (DataSource) ctx.lookup("hahaJNID"); //建立数据资源
conn = ds.getConnection(); //建立连接
stmt = conn.createStatement();
}
catch (Exception e) {
e.printStackTrace();
}*/
没注释的是硬写连接的
注释的是指定JNDI名字是lookup的连接池方式
LIB中引入ojdbc14.jar
⑦ java无法加载资源
问题java基本没关系命令行操作熟悉
javac 文件写路径写文件名读取前输入命令前面路径找文件
java 文件要进入.class文件路径再使用java HelloWorld要java 文件完整路径
⑧ Java加载资源文件的几种方法
1:使用本类的Class类的getResource()方法
URL filePathUrl3 = TestMain.class.getResource("/test/spring/beanpost/file/beans_diffLocation.xml");
2:使用本类的Class类的ClassLoader类的getResource()方法
URL filePathUrl5 = TestMain.class.getClassLoader().getResource("test/spring/beanpost/file/beans_diffLocation.xml");
3:使用ClassLoader类的getSystemResource()方法
URL filePathUrl6 = ClassLoader.getSystemResource("test/spring/beanpost/beans_sameLocation.xml");
4:使用Thread类加载资源
URL filePathUrl8 = Thread.currentThread().getContextClassLoader().getResource("test/spring/beanpost/file/beans_diffLocation.xml");
⑨ Java Web Start-下载错误 无法加载资源 进不了系统是怎么回事求助,谢谢
估计是防火墙拦截了
或者说,用java运行会看到一些警告
是表示你用了一些 java 不推荐使用 类或者函数
⑩ java静态资源(静态方法,静态属性)是程序一运行就加载到jvm中,还是当被调用的时候才进行加载呢
当类第一次被调用时加载(静态方法,静态属性的加载就是类加载) 。
1、类中的静态属性会被加入到类对象(也可以叫做类的模板,是类的描述) 的构造器中,静态方法也会被加入到类对象中。
2、当第一次使用类时,JVM会通过类加载器,加载类对象,从而初始化静态属性,并装入类的方法,包括静态方法和实例方法(方法不会被调用,只是加载,从这个意义上来说,静态方法和实例方法是类似的)。
3、当创建类的实例对象时,JVM会调用类的构造器,从而初始化类的属性。
(10)java资源加载扩展阅读:
类(包括静态方法、属性)加载过程:
一、加载。
根据一个类的全限定名(如cn.e.h.test.HelloWorld.class)来读取此类的二进制字节流到JVM内部。
将字节流所代表的静态存储结构转换为方法区的运行时数据结构(hotspot选择将Class对象存储在方法区中,Java虚拟机规范并没有明确要求一定要存储在方法区或堆区中)转换为一个与目标类型对应的java.lang.Class对象。
二、连接。
1、验证。
验证阶段主要包括四个检验过程:文件格式验证、元数据验证、字节码验证和符号引用验证;
2、准备。
为类中的所有静态变量分配内存空间,并为其设置一个初始值(由于还没有产生对象,实例变量将不再此操作范围内);
3、解析。
将常量池中所有的符号引用转为直接引用(得到类或者字段、方法在内存中的指针或者偏移量,以便直接调用该方法)。这个阶段可以在初始化之后再执行。