JAVA-从磁盘上的file.JAVA获取类

JAVA-从磁盘上的file.JAVA获取类,java,load,classloader,disk,Java,Load,Classloader,Disk,我想从磁盘上的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.loadClas

我想从磁盘上的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);
        }

但它不起作用;(

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

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

javac Foo.java
…将创建
Foo.class
,然后可以加载该类


您可能会发现它很有用。它通过在您的计算机上设置工具、编写源文件、将其编译成类文件并运行这些步骤。

java文件需要先编译成
.class
文件……您希望它做什么?它会产生什么错误?您在哪里定义或给出错误它的类名?可能是重复的谢谢,它在编译后工作。但是当文件导入时,编译过程中会出现错误。