【问题标题】:JAVA - get class from file.java located on diskJAVA - 从位于磁盘上的 file.java 获取类
【发布时间】:2015-09-18 07:11:10
【问题描述】:

我想从位于磁盘上的 file.java 加载类定义或字段。 我试过 URLClassLoader:

        URL url = file.toURL();
        URL[] urls = new URL[]{url};
        ClassLoader cl = new URLClassLoader(urls);
        Class c = new Object().getClass();
        try {
            c = cl.loadClass(className);
        } catch (ClassNotFoundException e1) {
              System.err.println("not found class: " + className);
        }

但它不起作用;(

【问题讨论】:

  • .java文件需要先编译成.class文件...
  • 你希望它做什么?它给出了什么错误?你在哪里定义或给它 className ?
  • Java example with ClassLoader 的可能重复项

标签: java load classloader disk


【解决方案1】:

您可以通过loadClass 加载类,但不能通过源代码文件加载。 .java 文件包含源代码。对于 Java,与许多(但不是全部)其他语言一样,您必须将源代码“编译”成机器可读的形式——在 Java 的情况下,.class 文件(可能会或可能不会捆绑到.jar)。您使用javac 工具(或您的IDE 的功能)编译Java 代码。

例如,如果您在名为 Foo.java 的文件中定义了一个名为 Foo 的类,那么:

javac Foo.java

...将创建Foo.class,然后可以加载。

您可能会发现this "Getting Started": The "Hello World" application tutorial from Oracle 很有用。它经历了在您的计算机上设置工具、编写源文件、将其编译为类文件并运行它的步骤。

【讨论】:

  • 谢谢,编译后就可以了。但是当文件有导入时,编译过程中会出现错误。
猜你喜欢
  • 2017-06-10
  • 2020-03-31
  • 2014-12-21
  • 1970-01-01
  • 2011-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多