Пишеться программа на java, которая должна обрабатывать картинки с помощью операторов.
Классы операторов считываються динамически из одного пакета в программе в массив классов.
Метод для считывания работает в консоле а в jar-файле не работает...
public class PackageClassList {
public static List<Class<?>> getClasses( String pack ) throws Exception{
ClassLoader cl = PackageClassList.class.getClassLoader();
String packageDir = pack.replaceAll("[.]", "/");
List<Class<?>> classes = new ArrayList<Class<?>>();
URL upackage = cl.getResource(packageDir);
InputStream in = (InputStream) upackage.getContent();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line = null;
while ((line = br.readLine()) != null) {
if(line.endsWith(".class"))
classes.add(Class.forName( pack+"."+line.substring(0,line.lastIndexOf('.'))));
}
return classes;
}
}
вобще-то это учебный проект - делаю паралельно с подготовкой к OCPJP.
хочу сделать быстро и научиться чему нибудь...
может можно как нибудь по другому реализовать?
посоветует что-нибудь?
моя идея была такая - пишу себе операторы, складываю в пакет oparators. Операторы наследуют у абстрактного класса AbstractOperator.
Программа автоматом читает пакет operators и грузит классы оттуда в массив. Из массвива делате dropbox, истанциирует операторы и пременяет их, полиморфизм, все красиво и т.д.
Потом хочется запаковать в исполняемый массив и отослать кому нибудь...
чтоб человек без суеты, запустил jar и посмотрел, а не распаковывал архив, искал батник...
хочу все делать в Eclipse и не заморачиваться на копирование и упаковку операторов... настройку, конфигурацию...
откомпилировал, запаковал и все.