首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java类加载器

Java类加载器
EN

Stack Overflow用户
提问于 2010-03-09 16:35:00
回答 2查看 612关注 0票数 1

我需要从一个目录中的java文件中获取一个类的方法名。

代码语言:javascript
复制
   File file=new File("C:/class/");
    try {
      // Convert File to a URL
      URL url = file.toURL();          // file:/c:/class/
      URL[] urls = new URL[]{url};

      // Create a new class loader with the directory
      URLClassLoader loader = new URLClassLoader(urls);

      // Load in the class; Class.childclass should be located in
      // the directory file:/c:/class/
      Class cls = loader.loadClass("Arithmatic.java");
      Method[] methods=cls.getMethods();
      for(Method method:methods){
       System.out.println("Method name:"+method.getName());
      }
  } catch (MalformedURLException e) {
   System.out.println("Exception");
  } catch (ClassNotFoundException e) {
   System.out.println("Class not found exception");
  }

我去叫ClassNotFoundException

这是正确的做法吗?

有没有人能提出解决方案……

EN

回答 2

Stack Overflow用户

发布于 2010-03-09 16:40:50

您不能将.java文件作为类加载。您应该加载一个.class文件(这意味着应该首先编译它)

代码语言:javascript
复制
loader.loadClass("Arithmatic", true);

如果没有编译形式的类,可以在运行时使用JavaCompiler对其进行编译

票数 3
EN

Stack Overflow用户

发布于 2010-03-09 16:39:46

试一试

代码语言:javascript
复制
Class.forName("Arithmatic", true, loader)

而不是

代码语言:javascript
复制
loader.loadClass("Arithmatic.java")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2407581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档