java中load什么意思?java的load方法有什么用
其实java中load什么意思的问题并不复杂,但是又很多的朋友都不太了解java的load方法有什么用,因此呢,今天小编就来为大家分享java中load什么意思的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
java中properties的load方法读取的文件内容怎么写
1.使用java.util.Properties类的load()方法
示例:
//文件在项目下。不是在包下!!
InputStream in= new BufferedInputStream(new FileInputStream("demo.properties"));
Properties p= new Properties();
p.load(in);
String className2= p.getProperty("database.driver");
String url= p.getProperty("database.url");
String user= p.getProperty("database.user");
String password= p.getProperty("database.pass");
2.使用java.util.Resourcebundle类的getbundle()方法
//前面没有“/”代表当前类的目录
示例:
//文件和类在同一个包下,注意它的文件名和后缀!!是调换的,
//这里我也不知道为什么文件名和后缀名要调换??知道的麻烦您告诉我一声,谢谢!!
ResourceBundle resource= ResourceBundle.getBundle("properties.jdbc");
String className= resource.getString("database.driver");
String url= resource.getString("database.url");
String user= resource.getString("database.user");
String password= resource.getString("database.pass");
3.使用java.util.PropertyResourceBundle类的构造函数
示例:
//文件在项目下或者 src/demo.properties
//在 src/demo.properties写成 new FileInputStream("src/demo.properties")
InputStream in= new BufferedInputStream(new FileInputStream("demo.properties"));
ResourceBundle rb= new PropertyResourceBundle(in);
String className4= rb.getString("database.url");
4.使用class变量的getresourceasstream()方法
示例:
InputStream in=Properties.class.getResourceAsStream("/properties/jdbc.properties");
//包点类名下的。
//如果找不到带有该名称的资源,则返回 null
Properties p= new Properties();
p.load(in);
System.out.println(p.getProperty("database.url"));
5.使用class.getclassloader()所得到的java.lang.classloader的getresourceasstream()方法
// properties文件要放在src下面,否则找不到啊
示例:
InputStream in=类名.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties p= new Properties();
p.load(in);
System.out.println(p.getProperty("database.pass"));
6.使用java.lang.classloader类的getsystemresourceasstream()静态方法
示例:
//同包名下
InputStream in= ClassLoader.getSystemResourceAsStream("properties/jdbc.properties");
Properties p= new Properties();
p.load(in);
System.out.println(p.getProperty("database.user"));
java load 和 loadlibrary方法的区别
Java load和 loadlibrary方法的区别
1.它们都可以用来装载库文件,不论是JNI库文件还是非JNI库文件。在任何本地方法被调用之前必须先用这个两个方法之一把相应的JNI库文件装载。
2.System.load参数为库文件的绝对路径,可以是任意路径。
例如你可以这样载入一个windows平台下JNI库文件:
System.load("C:\\Documents and Settings\\TestJNI.dll");。
3. System.loadLibrary参数为库文件名,不包含库文件的扩展名。
例如你可以这样载入一个windows平台下JNI库文件
System. loadLibrary("TestJNI");
这里,TestJNI.dll必须是在java.library.path这一jvm变量所指向的路径中。
可以通过如下方法来获得该变量的值:
System.getProperty("java.library.path");
默认情况下,在Windows平台下,该值包含如下位置:
1)和jre相关的一些目录
2)程序当前目录
3)Windows目录
4)系统目录(system32)
5)系统环境变量path指定目录
4.如果你要载入的库文件静态链接到其它动态链接库,例如TestJNI.dll静态链接到dependency.dll,那么你必须注意:
1)如果你选择
System.load("C:\\Documents and Settings\\ TestJNI.dll");
那么即使你把dependency.dll同样放在C:\\Documents and Settings\\下,load还是会因为找不到依赖的dll而失败。因为jvm在载入TestJNI.dll会先去载入TestJNI.dll所依赖的库文件dependency.dll,而dependency.dll并不位于java.library.path所指定的目录下,所以jvm找不到 dependency.dll。
你有两个方法解决这个问题:一是把C:\\Documents and Settings\\加入到java.library.path的路径中,例如加入到系统的path中。二是先调用
System.load("C:\\Documents and Settings\\ dependency.dll");让jvm先载入dependency.dll,然后再调用System.load("C:\\Documents and Settings\\ TestJNI.dll");
2)如果你选择
System. loadLibrary("TestJNI");
那么你只要把dependency.dll放在任何java.library.path包含的路径中即可,当然也包括和TestJNI.dll相同的目录。
附load方法:
/*
* Loads and links a library without security checks.
*/
void load(String filename, ClassLoader loader){
if(filename== null){
throw new NullPointerException("library path was null.");
}
String error= nativeLoad(filename, loader);
if(error!= null){
throw new UnsatisfiedLinkError(error);
}
}
loadLibrary方法:
/*
* Loads and links a library without security checks.
*/
void loadLibrary(String libraryName, ClassLoader loader){
if(loader!= null){
String filename= loader.findLibrary(libraryName);
if(filename== null){
throw new UnsatisfiedLinkError("Couldn't load"+ libraryName+":"+
"findLibrary returned null");
}
String error= nativeLoad(filename, loader);
if(error!= null){
throw new UnsatisfiedLinkError(error);
}
return;
}
String filename= System.mapLibraryName(libraryName);
List<String> candidates= new ArrayList<String>();
String lastError= null;
for(String directory: mLibPaths){
String candidate= directory+ filename;
candidates.add(candidate);
if(new File(candidate).exists()){
String error= nativeLoad(candidate, loader);
if(error== null){
return;// We successfully loaded the library. Job done.
}
lastError= error;
}
}
if(lastError!= null){
throw new UnsatisfiedLinkError(lastError);
}
throw new UnsatisfiedLinkError("Library"+ libraryName+" not found; tried"+ candidates);
}
java的load方法有什么用
java.lang.Runtime.load(String filename)方法加载指定的文件名作为动态库。
文件名参数必须是一个完整的路径名(如:Runtime.getRuntime().load("/home/avh/lib/libX11.so");)。首先,如果有安全管理器,它的checkLink方法被调用的文件名作为参数。这可能会导致一个安全性异常。这是类似的方法调用 loadLibrary(String),但它接受一个普通的文件名作为参数,而不是仅仅是一个库名,允许本地代码的任何文件被加载。调用此方法的方法System.load(String)是常规的,便捷的手段。
声明
以下是声明java.lang.Runtime.load()方法
public void load(String filename)
参数
filename-- the file to load.
返回值
此方法无返回值.
OK,关于java中load什么意思和java的load方法有什么用的内容到此结束了,希望对大家有所帮助。