Самый простой вариант чтения встроенных ресурсов — использовать Class.getResource
или Class.getResourceAsStream
.
Я могу придумать несколько способов добиться этого, в зависимости от ваших потребностей.
Добавьте com.me.Y.jar
в путь к классам. Вы можете сделать это либо на системном уровне (на самом деле не рекомендуется), либо в командной строке...
java -cp com.me.Y.jar -jar com.me.X.jar
Редактировать Было указано, что аргумент -cp
игнорируется с помощью приведенной выше команды, но если вы включите основной класс, он будет работать... java -cp com.me.Y.jar -jar com.me.X.jar com.me.x.Main
(например)
Если это неудобно, вы можете добавить com.me.Y.jar
в com.me.X.jar
путь к классу манифеста который автоматически включит com.me.Y.jar
для вас.
Если вы не можете этого сделать, вы можете использовать URLClassLoader
для прямой загрузки com.me.Y.jar
...
URL[] urls = new URL[]{new File("/path/to/com.me.Y.jar").toURI().toURL())};
URLClassLoader classLoader = new URLClassLoader(urls);
URL resource = classLoader.findResource("/config/conf.txt");
Или, если хотите, вы можете просто открыть Jar, используя java.util.JarFile
, но это очень похоже на раскалывание грецких орехов ядерной бомбой... ИМХО
person
MadProgrammer
schedule
18.01.2013