Доступ к зависимостям Jar - PullRequest
       50

Доступ к зависимостям Jar

2 голосов
/ 23 декабря 2011

У меня есть jar-файл, содержащий exe и изображение баннера (jpg), от которого зависит весь скрипт.Как я могу получить доступ и использовать эти 2 зависимости от себя (файл JAR)?В настоящее время доступ к jpg:

BufferedImage getBanner = ImageIO.read(new File("banner.jpg"));
JLabel drawBanner = new JLabel(new ImageIcon(getBanner));

, а к файлу exe:Я могу динамически обновить это.

1 Ответ

2 голосов
/ 23 декабря 2011

Загрузчик классов для jre может «найти» любой файл в вашем пути к классам.

Чтобы добавить внешнюю программу, чтобы она была доступна вашему банку:

Сначала создайте загрузчик классов и используйте ClassLoader для динамического получения ресурса, и пусть он обрабатывает специфичные для пути детали местоположения файла. Таким образом ... вы будете делать что-то вроде этого:

URL myExecutable = 
        MyClass.class.getClassLoader().getResource("executable/program.exe");

Теперь вы должны иметь прямой доступ к программе, как если бы это был любой другой файл.

File f=new File(myExecutable.toURI());

И теперь вы можете позвонить, используя

Runtime.getRuntime().exec(f.getAbsolutePath());

CAVEAT

В этот момент задайте себе вопрос ПОЧЕМУ Я ОБЕСПЕЧИВАЮ EXE-файл В ФАЙЛЕ JAR? Лучше иметь отдельный пакет для каждой платформы операционной системы в zip-файле. Поместите jar и exe-файл в zip-файл - вместо того, чтобы связать специфичный для ОС исполняемый файл с вашим двоичным файлом Java.

...