Я создаю графический интерфейс, и я собирался добавить простой pdf-файл в качестве файла справки. я включил его в пакет ресурсов и поиск на этом форуме я придумал следующий код:Доступ к файлу PDF, хранящемуся в .jar
private void GuideActionPerformed(java.awt.event.ActionEvent evt) {
if (Desktop.isDesktopSupported()) {
try {
File myFile = new File(("Help.pdf"));
if (!myFile.exists()) {
// In JAR
InputStream inputStream = ClassLoader.getSystemClassLoader()
.getResourceAsStream("resources/manual.pdf");
// Copy file
OutputStream outputStream = new FileOutputStream(myFile);
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
outputStream.close();
inputStream.close();
}
Desktop.getDesktop().open(myFile);
} catch (IOException ex) {
// no application registered for PDFs
}
}
Проблема заключается в том, что теперь читатель PDF не может получить доступ к файлу, так как он уже используется приложением Java. Есть ли способ решить эту проблему? В противном случае я просто добавлю файл на dist и выработаю путь к ресурсу.
Вы пробовали? 'InputStream input = getClass(). GetResourceAsStream (" resources/manual.pdf ");' –
Была ли, по крайней мере, копирование? – mkl