0 0

系统变量System.getProperty("java.class.path")的作用?5

最近在学习java类加载机制,对类加载过程以及类加载器有了些了解,现在有几个问题是我还没想通的:
1.根据我的理解,系统类加载器(AppClassLoader)可以加载的类的路径都保存在系统变量(System.getProperty("java.class.path"))中,于是我做了个实验,将系统变量java.class.path设置为Null,即:
System.setProperty("java.class.path", null);
,按照我的想法,这个时候AppClassLoader会因为找不到路径而不能加载到类啊,但是事实却是相反,它可以加载到类。既然如此,说明AppClassLoader不是以系统变量System.getProperty("java.class.path")中保存的路径来加载类的,那它到底是以那些路径(在哪里保存)来加载类的呢?

2.每个类被编译的时候会被自动加上一个类属性,即
public final static class
,这个属性会指向类加载后生成的对应的 Class 类型的实例,也就是说 class 这个值虽然定义为 final 类型,但是却是不能在编译期确定下来的,是要在类装载之后才能确定下来,那么根据类的初始化时机的规则,当一个类调用 class 属性时应该会引起该类的初始化啊,比如定义了类 TTS(内有static初始化代码块),当使用 TTS.class 时,static 代码块应该会被调用啊,可以实验是没有,这如何解释?还是我的前提理解就有错误?
2012年7月01日 12:30

1个答案 按时间排序 按投票排序

0 0

1.哥们,你在调用set改class path的时候,你的这个class早就已经加载完了,你是可以改classpath,只是没有影响而已,。。。

2 你用class cc = TT.class 是不会进行初始化的,只有第一次调用构造函数或者静态方法才会进行初始化

如果用Class.forName("xxx.xxx")就会进行初始化了

2012年7月01日 16:03

相关推荐

    java项目路径(相关信息)的取得

    - 示例代码:`System.getProperty("path.separator")` - 应用场景:构建类路径或库路径。 25. **`line.separator`** - 描述:行分隔符。 - 示例代码:`System.getProperty("line.separator")` - 应用场景:...

    Java的System.getProperty()方法获取大全

    `System.getProperty()`方法是Java中的一个核心功能,它用于获取Java虚拟机(JVM)和操作系统相关的系统属性。这些属性提供了关于运行Java程序的环境的详细信息,包括Java版本、供应商信息、JRE目录、操作系统详情等...

    JAVA读取环境变量

    在Java程序中,有时我们需要根据不同的运行环境(如Windows或Linux)来获取系统环境变量。这些环境变量包含了操作系统配置的重要信息,比如路径设置、用户信息等。本文将详细介绍如何在Java程序中实现跨平台地读取...

    Java中获取类路径classpath的简单方法(推荐)

    通过调用 `System.getProperty("java.class.path")` 可以获取到系统属性 `java.class.path` 的值,这个属性包含了JVM的默认类路径。示例代码中的 `path` 变量就是通过这种方法获取的。此方法返回的是一个字符串,...

    【图文】第六章、Java之API.doc

    String classpath = System.getProperty("java.class.path"); ``` Java还允许开发者通过命令行参数 `-D` 来设置系统的属性。比如,`java -Daaa=bbb SystemTest`将在运行时为Java虚拟机创建一个新的环境属性`aaa`,...

    JAVA环境变量设置源码范例和详细说明(由浅入深,深度解读在资料后半部分).docx

    2. 然后,我们使用System.getProperty("java.version")方法获取java.version系统属性的值(即JAVA的版本信息),并将其存储在javaVersion变量中。 3. 最后,我们使用System.out.println()方法将JAVA的安装路径和版本...

    如何安装java JDK以及正确设置CLASSPATH系统变量

    System.out.println(System.getProperty("java.class.path")); // 其他程序代码 } } ``` 通过`javac JavaBootTest.java`和`java JavaBootTest`两条命令即可编译和运行这个程序。运行结果会显示当前的Classpath...

    java 获取程序运行环境的信息

    - `java.class.path`系统属性也包含了当前的类路径,可以通过`System.getProperty("java.class.path")`获取。 5. **环境变量**: - 要获取系统环境变量,可以使用`System.getenv()`方法,它返回一个`Map`,其中键...

    抓取网页数据函数

    在现代软件开发过程中,尤其是涉及到跨平台的应用程序时,了解并掌握如何利用 Java 的 `System.getProperty()` 方法来获取运行时系统的相关信息是非常重要的。这不仅可以帮助开发者更好地调试代码,还可以在不同环境...

    获取系统中各变量

    - `java.class.path`:类路径,用于查找Java类和资源。 ### 五、应用示例 在实际开发中,了解和利用系统属性可以帮助我们实现以下功能: - 根据不同的操作系统定制程序行为。 - 在用户主目录下存储配置文件或日志...

    Windows环境下Java加载DLL.docx

    String property = System.getProperty("java.library.path"); StringTokenizer parser = new StringTokenizer(property, ";"); while (parser.hasMoreTokens()) { System.err.println(parser.nextToken()); } ``` ...

    Java 类加载机制 ClassLoader Class.forName.pdf

    3. **Application ClassLoader** 的搜索路径由`System.getProperty("java.class.path")`指定,包含了应用程序类的路径。 #### 四、类加载器的特点与获取 ##### 4.1 特点 1. **类加载委托机制**: 每个类加载器在...

    JAVA调用第三方DLL的方法.doc

    1. **获取当前JAVA_LIBRARY_PATH**:通过调用`System.getProperty("java.library.path")`获取当前的搜索路径列表。 2. **拷贝DLL文件至指定路径**:将DLL文件复制到上一步获取到的路径列表中的一个目录下。 3. **...

    JAVA启动参数大全1.pdf

    3. User路径包括当前目录、CLASSPATH和-classpath指定的路径,是最后被搜索的,通过`System.getProperty("java.class.path")`查看。 `-Dproperty=value`参数用于设置系统属性,值中如果有空格,需要用双引号括起来...

    Java读取Properties文件的六种方法

    #### 四、使用 `Class` 变量的 `getResourceAsStream()` 方法 这种方法通常用于从类路径下的文件加载资源。 ```java import java.io.InputStream; import java.util.Properties; public class ReadProperties { ...

    JAVA调用第三方DLL的方法

    - 在Java代码中调用`System.getProperty("java.library.path")`,获取当前JVM加载库的路径列表。 - 将AA.dll复制到返回的路径之一。 - 更新classpath,包含AAbean.jar。 此外,了解`System.getProperty()`方法可以...

    jacob-1.14.3-x86

    可以设置环境变量或者在启动Java应用时通过`-cp`或`-classpath`参数指定。 3. 在Java代码中,通过`System.loadLibrary("jacob")`加载`dll`库。 三、Jacob的使用 Jacob的主要使用方式是通过Java类`...

    HU-unix下面java调用C语言动态链接库.docx

    - 可以通过`System.getProperty("java.library.path")`来查看当前的`java.library.path`值。 4. **调试与验证**: - 在设置好环境变量之后,重新启动Java应用程序并尝试加载动态链接库。 - 如果仍然出现问题,...

    Java 命令行运行参数大全

    - Bootstrap classes: JVM自带的类,可通过`System.getProperty("sun.boot.class.path")`查询。 - Extension classes: 存储在`jre\lib\ext`目录下的类,可通过`System.getProperty("java.ext.dirs")`查询。 - ...

Global site tag (gtag.js) - Google Analytics