У меня сближение потребностей, связанных с тем, где находятся мои файлы данных.В текущем приложении все файлы классов и данных в JAR (сборка с использованием Eclipse IDE).
Я заметил, что существует множество способов получения этой информации людьми.Мне нужен путь, где мои файлы изображений (графика).Мне также нужно это как URL, чтобы использовать вызов инструментария.
Toolkit tk = frame.getToolkit();
image = tk.getImage(url.toFile());
Но у меня проблемы с созданием URL-адреса или чего-то еще.Я пробовал несколько разных методов.На этом этапе я храню файлы данных рядом с файлами классов в файловой системе.Я добавляю еще одну функцию к тому, что я делаю - убираю каталог / bin при запуске в режиме отладки.
// in class BwServices at init:
try {
rootDataPath = BwServices.class.getProtectionDomain()
.getCodeSource().getLocation().getPath();
rootDataPath = URLDecoder.decode(rootDataPath, "UTF-8");
fileSystemAccess = true;
}
if(rootDataPath.endsWith("/bin/"))
rootDataPath = rootDataPath.substring(0, rootDataPath.length() - 4);
Позже ... Я иду, чтобы получить изображения, и некоторые звонки не работают, я не знаю, почему
Я попробовал две вещи ...
// 1
String s = "file://" + rootDataPath + d.toString() + fileName;
url = frame.getClass().getResource(s);
// 2
try {
url = new URL(s);
} catch (MalformedURLException e) {
trace("getImage - can't get url: " + s);
e.printStackTrace();
}
У любого из них есть проблемы.
Мне звонят, чтобы получать изображения из разных мест.'Frame' - это родительский фрейм во всем исполнении в классе BwFrame.
Мой путь выглядит таким образом при любых попытках ...
rootDataPath: / C: / Users / Markgm / Documents / DEV / workspace / bwp /
Итак,Я ищу способы открыть FileInputStream или URL-адреса для инструментария, для файлов относительно того, где находится файл класса (и с некоторыми хитростями, когда в отладке).Для клиентского приложения это то, что есть.Когда-нибудь я, возможно, захочу запустить это как апплет, но я не знаю, где должны быть файлы изображений.(Игральные карты 50x75 и несколько изображений кнопок) Любая помощь или совет приветствуются!
TIA, Mark