- 浏览: 515495 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (136)
- SOS经典收藏 (9)
- 好文收藏 (3)
- 技术杂烩 (6)
- SQL常用操作 (8)
- J2EE开发错误 (11)
- Java开发点滴_SSH (20)
- 数据库维护 (11)
- 网络相关 (1)
- WEB JS_CSS_DIV (10)
- 加密解密 (1)
- Swing (2)
- C&C++ (8)
- Linux (2)
- 软件工程 (5)
- Util (3)
- 我的实例 (3)
- Office办公常用 (3)
- JSP_Servlet (3)
- 开发手记 (4)
- Java基础 (3)
- Oracle技术 (6)
- 基础文档库 (9)
- 设计模式 (1)
- weblogic8.1启动的时候,项目报错,找不到Class (0)
- Office应用 (1)
- VM虚拟机技术 (1)
- PHP开发日记 (0)
最新评论
-
MoonLord:
其实不需要删文件,修改一个值就好了,参考:https://gi ...
Beyond Compare报应用程序发生错误 不能打开解决办法 -
别拿土豆不当马铃薯:
${pageContext.request.contextPath} JSP取得绝对路径 -
hysunny0923:
不需要DBUtilis.java啦学到很多~感谢分享~~
第一个JSP+Servlet+JavaBean+JDBC示例程序 -
zsxy168:
少了DBUtils.java文件
第一个JSP+Servlet+JavaBean+JDBC示例程序 -
little_demonye:
写得好详细,清楚了很多,太感谢啦
第一个JSP+Servlet+JavaBean+JDBC示例程序
System.load 和 System.loadLibrary详解
1.它们都可以用来装载库文件,不论是JNI库文件还是非JNI库文件。在任何本地方法被调用之前必须先用这个两个方法之一把相应的JNI库文件装载。
2.System.load 参数为库文件的绝对路径,可以是任意路径。
例如你可以这样载入一个windows平台下JNI库文件:
3. System.loadLibrary 参数为库文件名,不包含库文件的扩展名。
例如你可以这样载入一个windows平台下JNI库文件
这里,TestJNI.dll 必须是在java.library.path这一jvm变量所指向的路径中。
可以通过如下方法来获得该变量的值:
默认情况下,在Windows平台下,该值包含如下位置:
1)和jre相关的一些目录
2)程序当前目录
3)Windows目录
4)系统目录(system32)
5)系统环境变量path指定目录
4.如果你要载入的库文件静态链接到其它动态链接库,例如TestJNI.dll 静态链接到dependency.dll, 那么你必须注意:
1)如果你选择
那 么即使你把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中。二是先调用
2)如果你选择
那么你只要把dependency.dll放在任何java.library.path包含的路径中即可,当然也包括和TestJNI.dll相同的目录。
java的System.getProperty()方法可以获取的值
java.version
Java 运行时环境版本
java.vendor
Java 运行时环境供应商
java.vendor.url
Java 供应商的 URL
java.home
Java 安装目录
java.vm.specification.version
Java 虚拟机规范版本
java.vm.specification.vendor
Java 虚拟机规范供应商
java.vm.specification.name
Java 虚拟机规范名称
java.vm.version
Java 虚拟机实现版本
java.vm.vendor
Java 虚拟机实现供应商
java.vm.name
Java 虚拟机实现名称
java.specification.version
Java 运行时环境规范版本
java.specification.vendor
Java 运行时环境规范供应商
java.specification.name
Java 运行时环境规范名称
java.class.version
Java 类格式版本号
java.class.path
Java 类路径
java.library.path
加载库时搜索的路径列表
java.io.tmpdir
默认的临时文件路径
java.compiler
要使用的 JIT 编译器的名称
java.ext.dirs
一个或多个扩展目录的路径
os.name
操作系统的名称
os.arch
操作系统的架构
os.version
操作系统的版本
file.separator
文件分隔符(在 UNIX 系统中是“/”)
path.separator
路径分隔符(在 UNIX 系统中是“:”)
line.separator
行分隔符(在 UNIX 系统中是“/n”)
user.name
用户的账户名称
user.home
用户的主目录
user.dir
用户的当前工作目录
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相同的目录。
java的System.getProperty()方法可以获取的值
java.version
Java 运行时环境版本
java.vendor
Java 运行时环境供应商
java.vendor.url
Java 供应商的 URL
java.home
Java 安装目录
java.vm.specification.version
Java 虚拟机规范版本
java.vm.specification.vendor
Java 虚拟机规范供应商
java.vm.specification.name
Java 虚拟机规范名称
java.vm.version
Java 虚拟机实现版本
java.vm.vendor
Java 虚拟机实现供应商
java.vm.name
Java 虚拟机实现名称
java.specification.version
Java 运行时环境规范版本
java.specification.vendor
Java 运行时环境规范供应商
java.specification.name
Java 运行时环境规范名称
java.class.version
Java 类格式版本号
java.class.path
Java 类路径
java.library.path
加载库时搜索的路径列表
java.io.tmpdir
默认的临时文件路径
java.compiler
要使用的 JIT 编译器的名称
java.ext.dirs
一个或多个扩展目录的路径
os.name
操作系统的名称
os.arch
操作系统的架构
os.version
操作系统的版本
file.separator
文件分隔符(在 UNIX 系统中是“/”)
path.separator
路径分隔符(在 UNIX 系统中是“:”)
line.separator
行分隔符(在 UNIX 系统中是“/n”)
user.name
用户的账户名称
user.home
用户的主目录
user.dir
用户的当前工作目录
public class SystemProperty { public static void main(String args[]) { System.out.println("java_vendor:" + System.getProperty("java.vendor")); System.out.println("java_vendor_url:" + System.getProperty("java.vendor.url")); System.out.println("java_home:" + System.getProperty("java.home")); System.out.println("java_class_version:" + System.getProperty("java.class.version")); System.out.println("java_class_path:" + System.getProperty("java.class.path")); System.out.println("os_name:" + System.getProperty("os.name")); System.out.println("os_arch:" + System.getProperty("os.arch")); System.out.println("os_version:" + System.getProperty("os.version")); System.out.println("user_name:" + System.getProperty("user.name")); System.out.println("user_home:" + System.getProperty("user.home")); System.out.println("user_dir:" + System.getProperty("user.dir")); System.out.println("java_vm_specification_version:" + System.getProperty("java.vm.specification.version")); System.out.println("java_vm_specification_vendor:" + System.getProperty("java.vm.specification.vendor")); System.out.println("java_vm_specification_name:" + System.getProperty("java.vm.specification.name")); System.out.println("java_vm_version:" + System.getProperty("java.vm.version")); System.out.println("java_vm_vendor:" + System.getProperty("java.vm.vendor")); System.out .println("java_vm_name:" + System.getProperty("java.vm.name")); System.out.println("java_ext_dirs:" + System.getProperty("java.ext.dirs")); System.out.println("file_separator:" + System.getProperty("file.separator")); System.out.println("path_separator:" + System.getProperty("path.separator")); System.out.println("line_separator:" + System.getProperty("line.separator")); }
发表评论
-
获得运行jar包存放路径的方法
2011-04-18 00:03 1388获得运行jar包存放路径 ... -
java读取配置文件的方法
2011-04-17 10:59 1147大家可能经常会遇到在Java程序中存取程序配置文件的需求,比如 ... -
<logic:iterate>使用
2010-05-21 13:55 1606<logic:iterate> 是Logic ... -
Struts中的html:link标签使用
2010-05-21 13:23 1173Struts中的html:link标签是 ... -
第一个hibernate项目
2010-01-03 13:56 1658什么是POJO? POJO是最纯粹的Java对象,也 ... -
Struts标签-bean:write几个属性举例
2009-12-31 17:10 8516Struts标签-bean:write几个属性举例2009-0 ... -
属性配置文件的使用方法_灵活使用配置文件来配置类
2009-12-21 19:26 762属性配置文件的使用方法 我们常常使用配置文件来进行工程属性的配 ... -
Java调用Windows命令
2009-10-09 12:08 1625Java调用Windows命令 Java调用Windows ... -
Java操作Windows注册表实例
2009-10-09 11:54 1438Microsoft Windows 9x、Windows ... -
jar文件的打包方法
2009-09-21 01:04 1404针对:双击jar文件,即可运行相关程序 首先列表一下环境: ... -
Java代码混淆器最佳推荐
2009-09-20 23:12 6599引用从事Java编程的人都知道,可以通过逆向工程反编译得到Ja ... -
Java基础知识小结
2009-07-24 11:22 1299引用小结Java学习中的一 ... -
建立规范的项目开发程序
2009-05-21 01:18 960引用规范的开发,使得项目看起来更为清晰,更为规范: 比如在开发 ... -
ApplicationResources.properties
2009-05-19 01:18 3501引用ApplicationResources.properti ... -
Properties Editor for Eclipse3[1].0-3.2安装使用
2009-05-14 00:42 9403采用Link方式安装Propertie ... -
Log4j在开发中的使用
2009-05-11 00:27 987Log4j: Log4j的使用分为 ... -
Jsp页面传值的方法
2009-04-22 11:13 11223一.通过Form表单提交传值 客户端通过Form表单提交到服 ... -
java反编译 jar jad
2009-04-21 18:11 5018引用将CLASS文件打包成JAR文件? 一:简单的打包: ... -
Eclips 使用点滴
2009-03-30 16:29 10151.)eclipse过滤jar文件 每次看到老长的竖列jar文 ...
相关推荐
在实际应用中,类装载机制使得Java应用程序能够灵活地加载不同版本的库,或者在运行时根据需要加载特定功能的类。比如,Web服务器会使用自定义的ClassLoader来加载每个Web应用的类,这样各个应用之间的类就可以保持...
"Softick PPP 2.21.rar"和"Samsung XXXX Java Uploder 汉化版.rar"这两个文件似乎与Java装载工具和方法不太直接相关,它们可能是Java应用程序或工具,如用于手机平台的Java应用上传工具,对于理解Java装载原理帮助较...
这种模型保证了Java核心库类的一致性和安全性。 了解并掌握Java虚拟机的类装载机制对于理解和优化Java应用的性能、实现动态加载和插件系统至关重要。开发者可以通过自定义类加载器实现特定的加载逻辑,如加载来自...
Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...
类装载器负责将类文件加载到Java虚拟机(JVM)中,而命名空间则帮助组织和管理这些类,避免命名冲突。 1. **类装载器(ClassLoader)** 类装载器是Java动态性的一个关键组件,它们根据类的全限定名(包括包名和...
- 系统类装载器是JVM内置的,用于加载Java标准库的类。 理解类装载机制对于优化程序性能、实现动态加载、插件系统以及增强程序的灵活性具有重要意义。例如,通过自定义类装载器,开发者可以在运行时替换或添加新的...
Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...
所有被装载的class文件(包括从应用程序中和从Java API中提取的)和所有已经装载的动态库(包含本地方法)共同组成了在Java虚拟机上运行的整个程序。 在一个平台能够支持Java程序以前,必须在这个特定平台上明确地实现...
Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...
Java类装载器是Java虚拟机(JVM)的一部分,负责加载类文件到JVM内存中。由于Java程序由多个类组成,这些类不是一次性全部加载,而是按需加载。当JVM需要使用某个类时,它会向相应的类装载器发出请求。类装载器负责...
所有被装载的class文件(包括从应用程序中和从Java API中提取的)和所有已经装载的动态库(包含本地方法)共同组成了再Java虚拟机上运行的整个程序。 在一个平台能够支持Java程序以前,必须在这个特定平台上明确地实现...
HelloNative.lib 用VC编译生成的静态库文件 HelloNative.obj 用VB编译生成的目标文件 HelloNativeTest.java 测试本地化是否成功的类文件 instanceVar.java 定义一个实例成员变量 invokeByObject.java 对象实参...
摘要通过构建一个能够把Java类装载隔离到一个指定的jar文件中的类装载组件容器框架,你可以确保运行时刻会装载你期望的组件版本。Java的类装载框架强有力且具有灵活性。它允许应用程序存取类库而不必链接到静态的...
Java虚拟机保证了代码的跨平台运行,类装载器允许动态加载和自定义行为,class文件实现了平台无关性,而Java API则为开发者提供了丰富的功能库,简化了网络应用的开发。通过深入学习和掌握这些概念,开发者能更好地...
1. **初始化JVM**: C++程序需要启动Java虚拟机,并找到要调用的类所在的类装载器。 2. **加载类**: 使用FindClass方法加载Java类。 3. **获取方法ID**: 通过GetMethodID获取Java方法的ID,需要指定方法名和方法签名...
Java字节码文件的扩展名应为.java:不正确,字节码文件的扩展名为.class。 - D. 一个Java源文件中只能包含一个Java类:不正确,一个源文件可以包含多个类,但只能有一个public类。 - **正确答案**:AB #### 三、...
图片到图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT ...
1. **引导类装载器(Bootstrap ClassLoader)**:是最顶层的类装载器,用于装载Java核心库(如rt.jar等),这些核心库位于JAVA_HOME/lib目录下。 2. **扩展类装载器(Extension ClassLoader)**:用于装载扩展库,...
`JAVA_OPTS`通常用于传递额外的JVM参数,如内存分配、日志配置等,而`javaagent`则是用于指定预加载的Java代理(Java Agent),它可以在应用程序启动之前运行,提供类装载器拦截、字节码操作等功能。 在Java中,`...