javaext目录的简单介绍

博主:adminadmin 2022-11-22 03:37:08 55

本篇文章给大家谈谈javaext目录,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java文件是怎么执行的

首先:使用javac命令把.java文件编译成.class文件(字节码文件)

然后:JVM(java虚拟机)装载.class文件并翻译成机器码后运行java程序;

共同学习-----请参考:

我们手工执行java程序是这样的:

1 在记事本中或者是UE的文本编辑器中,写好源程序;

2 使用javac命令把源程序编译成.class文件;

编译后的.class(类字节码)文件中会包含以下内容:

ConstantPool:符号表;

FieldInfo:类中的成员变量信息;

MethodInfo:类中的方法描述;

Attribute:可选的附加节点。

FieldInfo节点包含成员变量的名称,诸如public,private,static等的标志。ConstantValue属性用来存储静态的不变的成员变量的值。Deprecated和Synthetic被用来标记一个成员变量是不被推荐的或由编译器生成的。

3 有了.class文件,我们执行 java 解释命令就可以运行java程序了。

现在我们主要讨论一下,当执行 java这个命令后,会发生什么事情呢?

首先,JVM装载.class,也就是类装载器装载类字节码。一个类装载器本身也是一个java类,所以,类装载器自身也需要被另外一个类装载器装载,这就出现了类似先有蛋,还是先有鸡的问题。但JAVA中的类装载器的这个问题却很容易解决。JAVA的虚拟机(JVM)中内嵌了一个称为Bootstrap类装载器,它是用特定于操作系统的本地代码实现的,属于JAVA虚拟机的内核,Bootstrap类不用专门的类装载器去进行装载。Bootstrap类负责加载JAVA核心包中的类(即rt.jar文件中的类),这些类的Class.getClassLoader()方法返回值为null,即表示是Bootstrap类装载器。JAVA核心包中有另外两个类装载器:ExtClassLoader和AppClassLoader,它们都是用JAVA语言编写的JAVA类,其中ExtClassLoader类装载负责加载存放在JAVA_HOME/jre/lib/ext目录下的jar包中的类,AppClassLoader负责加载应用程序的启动执行类,即当使用java命令去启动执行一个类时,JAVA虚拟机使用AppClassLoader加载这个类。在编译和运行JAVA程序时,都会通过ExtClassLoader类装载器去JAVA_HOME/jre/lib/ext目录下的JAR包中搜索要加载的类,所以,如果将包含例如Servlet API的jar包或者是javamail.jar包复制到该目录下,在编译Servlet或JavaMail程序时,就不必在CLASSPATH环境变量中增加包含Servlet API的jar包或者是javamail.jar包文件。

以上,就是一个JAVA程序执行的大致过程。

java 弹出选择目录框(选择文件夹),获取选择的文件夹路径

java 弹出选择目录框(选择文件夹),获取选择的文件夹路径:

int result = 0;

File file = null;

String path = null;

JFileChooser fileChooser = new JFileChooser();

FileSystemView fsv = FileSystemView.getFileSystemView(); //注意了,这里重要的一句

System.out.println(fsv.getHomeDirectory()); //得到桌面路径

fileChooser.setCurrentDirectory(fsv.getHomeDirectory());

fileChooser.setDialogTitle("请选择要上传的文件...");

fileChooser.setApproveButtonText("确定");

fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

result = fileChooser.showOpenDialog(chatFrame);

if (JFileChooser.APPROVE_OPTION == result) {

path=fileChooser.getSelectedFile().getPath();

System.out.println("path: "+path);

}

这是另外一种方法得到桌面路径:

File desktop = new File(System.getProperty("user.home")+System.getProperty("file.separator")+"XX");

filechooser.setCurrentDirectory(desktop);

我的文档 路径: fsv.getDefaultDirectory());

user.name 用户的账户名称

user.home 用户的主目录

user.dir 用户的当前工作目录

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 操作系统的版本

怎样把jar包直接copy到JAVA_HOME/lib/ext下,JAVA_HOME/lib/ext在哪

用户变量配置的路径替代JAVAHOME 加入原路径就是你要找的JAVA_HOME/lib/ext的实际路径

比如我的环境变量中的用户变量JAVAHOME路径是:D:\java\jdk1.6

那么我的JAVA_HOME/lib/ext实际路径就是:D:\java\jdk1.6\lib\ext注意是右斜杠

jar直接放在项目的lib文件夹下,然后右击bild-path构建就行了

Java 如果将JAR文件放入jre/lib/ext目录中,会遇到什么麻烦?

这是一个类加载器的问题,类加载时采用树形的委托机制,默认有三个类加载器,bootstrap:主要加载jdk中jre/lib/rt.jar中的类,ExtClassLoader加载jre/lib/ext/*.jar,AppClassLoader加载classpath指定的jar或者目录,

这三个类加载器bootstrap是处在书的根节点,然后是ExtClassLoader,接着叶子节点是AppClassLoader。

bootstrap不是一个java类,其他两个都是java类,他们执行顺序是,bootstrap最先加载,然后ExtClassLoader加载。再AppClassLoader。

他们是采取向上委托的,即,如果AppClassLoader需要加载类时,首先它自己不加载,它向ExtClassLoader询问,ExtClassLoader也不加载,直接向bootstrap询问。这时,bootstrap是根节点,它没有上级,它直接去它的目录加载,如果加载成功,那就ok了,如果没有加载成功,那bootstrap会退回到ExtClassLoader,ExtClassLoader去它目录加载,如果加载成功,那就ok,如果没有成功,退回到AppClassLoader,AppClassLoader去它目录加载,如果加载成功那ok,如果不成功,如果AppClassLoader还有子的类加载器,AppClassLoader也不会退回到他的子加载器,AppClassLoader会直接抛异常。

如上面所述,“如果将JAR文件放入jre/lib/ext目录中,并且在它的类中有一个类需要调用系统类或者扩展类”,那么jre/lib/ext目录下是ExtClassLoader类加载器加载的,而且扩展类一般都在类路径地下,即需要AppClassLoader加载,然而ExtClassLoader在加载类如果不成功只会向上级bootstrap询问加载,而不会向下级询问加载,所有导致ExtClassLoader如果在类路径地下的类会加载失败。所有会出问题。

javaext目录的简单介绍

java中编好一个JAR放在jdk\JRE\LIB\ext目录下,然后写一个JAVA程序怎么调用呢

例如你新建了一个test.jar(test.jar的类名为Add ;该类的包名为net.star),把他放进D:jdk\jre\lib\ext目录下,你编写Java程序需要Add类时要加入import net.star.Add ,同时在环境变量classpath里加入D:jdk\jre\lib\ext\test.jar ,这时就可以执行编译后的Java程序了

javaext目录的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、javaext目录的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。