2015-09-18 6 views
0

Я хочу загрузить определение класса или поля из файла file.java, расположенного на диске. Я попытался URLClassLoader:JAVA - получить класс из file.java, расположенный на диске

 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); 
     } 

Но он не работает; (

+3

Файл '.java' должен быть скомпилирован в файл' .class' ... – MadProgrammer

+0

что вы ожидаете от него? и какую ошибку это дает? где вы определяете или даете ему имя класса? – lxx

+0

Возможный дубликат [Java-пример с ClassLoader] (http://stackoverflow.com/questions/9691855/java-example-with-classloader) –

ответ

0

Вы можете загружать классы через loadClass, но не файлы исходного кода .java файлы содержат исходный код с Java, как и многие (.. но не все) на других языках, вы должны «скомпилировать» исходный код в машиночитаемую форму   — в случае Java, файл .class (который может или не может быть затем связан в .jar). Вы компилируете код Java с помощью инструмента javac (или особенностей ты едешь).

Например, если у вас есть класс с именем Foo определены в файле с именем Foo.java, то:

javac Foo.java 

... создаст Foo.class, который затем может быть загружен.

Вы можете найти this "Getting Started": The "Hello World" application tutorial from Oracle полезно. Он проходит шаги по созданию инструментов, установленных на вашем компьютере, написанию исходного файла, компиляции его в файл класса и его запуске.

+0

Спасибо, он работает после компиляции. Но когда файл имеет импорт, во время компиляции возникают ошибки. – giani92

 Смежные вопросы

  • Нет связанных вопросов^_^