栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java类路径在JVM启动之后是最终的吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java类路径在JVM启动之后是最终的吗?

由于没有人可以给我一个明确的答案,也没有人提供与文档相应部分的链接,因此我自己提供一个答案。不过,我要感谢所有试图回答这个问题的人。

简短答案:

在JVM启动时,类路径不是最终的。

实际上,您可以在JVM启动后将类放在类路径中,然后将它们装入。


长答案:

为了回答这个问题,我遵循了用户未知的建议,并编写了一些测试程序。

基本思想是有两个类。第一类是实例化第二类的主要类。启动时,第二个类不在类路径中。cli程序启动后,将提示您按Enter。在按Enter之前,您将第二个类复制到类路径上。按Enter后,将实例化第二个类。如果类路径在JVM启动时是最终的,则将引发Exception。但事实并非如此。因此,我认为classpath在JVM启动时不是最终的。

以下是源代码:

JVMTest.java

package jvmtest;import java.io.Console;import jvmtest.MyClass;public class JVMTest {  public static void main(String[] args) {    System.out.println("JVMTest started ...");    Console c = System.console();    String enter = c.readLine("Press Enter to proceed");    MyClass myClass = new MyClass();    System.out.println("Bye Bye");  }}

MyClass.java

package jvmtest;public class MyClass {  public MyClass() {    System.out.println("MyClass v2");  }}

文件夹结构如下所示:

jvmtest/  JVMTest.class  MyClass.class

我使用以下命令启动了cli程序:

> java -cp /tmp/ jvmtest.JVMTest

如您所见,我在/ tmp / jvmtest中有我的jvmtest文件夹。您显然必须根据放置课程的位置对此进行更改。

所以这是我执行的步骤:

  1. 确保jvmtest中只有JVMTest.class。
  2. 从上方使用命令启动程序。
  3. 只是要确保按回车键。您应该看到一个异常,告诉您找不到任何类。
  4. 现在再次启动程序。
  5. 程序启动后,提示您按Enter,将MyClass文件复制到jvmtest文件夹中。
  6. 按回车。您应该看到“ MyClass v1”。

补充笔记:

当我将MyClass类包装在罐子中并运行上面的测试时,这也起作用。

我在运行Mac OS X 10.6.3的Macbook Pro上运行了此程序

> Java -version

结果是:

java version "1.6.0_20"Java(TM) SE Runtime Environment (build 1.6.0_20-b02-279-10M3065)Java HotSpot(TM) 64-Bit Server VM (build 16.3-b01-279, mixed mode)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506524.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号