2014-09-02 4 views
0

Один из моих файлов ресурсов - презентация PowerPoint, и я хочу открыть презентацию с помощью PowerPoint. Если я запустил код в Eclipse, все будет хорошо, но если я запустим исполняемый файл .jar с java -jar jarname.jar, PowerPoint скажет, что он не может прочитать файл.Откройте файл PowerPoint, содержащийся в файле JAR

Можно ли читать файлы упакованных ресурсов? Или это только исполняющая банка, способная читать эти файлы? Если да, что бы вы сделали? Записать файл во временную папку?

Абсолютный путь к презентации, если я бегу в затмении:

C:\Users\RPR\workspace\CommandLineExecuter\bin\blaa.pptx

Абсолютный путь к презентации, если я запустить исполняемый банку:

C:\Users\RPR\workspace\CommandLineExecuter\file:\C:\Users\RPR\workspace\CommandLineExecuter\CommandLineExecuter.jar!\blaa.pptx

PowerPoint не умеет читать файл, даже если я жестко задал путь к C:\Users\RPR\workspace\CommandLineExecuter\CommandLineExecuter.jar!\blaa.pptx

Cod е, где я загрузить ресурс:

File presentation = new File(CommandLineExecuter.class.getResource(
     "/blaa.pptx").getFile()); 

ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", 
     "cd & \"C:\\Program Files\\Microsoft Office\\Office15\\POWERPNT.exe\ " 
       + presentation.getAbsolutePath()); 
+0

Сообщите нам код, в который вы загружаете данный ресурс. –

+0

Я добавил код. – XenonUnlimited

+0

getResource(). GetFile() не делает то, что вы думаете. ОС не знает, как обратиться в файл jar. И для простого открытия документа, пусть ОС справится с этим. Взгляните на метод Desktop.open(). – Durandal

ответ

1

Если вы используете getResourceAsStream(), то вы можете извлечь файл из JAR и поместить его где-то, что PowerPoint могут получить доступ.

Например, create a temporary file и используйте IOUtils.copy(), чтобы скопировать данные в FileOutputStream, указав ваш файл.

Наконец, пропустите этот временный путь к файлу PowerPoint.

+0

Окай спасибо. Поэтому мне нужно создать временный файл, и невозможно получить доступ к файлам ресурсов из другой программы, кроме моей банки? – XenonUnlimited

+0

PowerPoint, конечно, не сможет открыть файл в JAR. –

+0

Okai благодарит за ваше время и совет! – XenonUnlimited

Смежные вопросы