我的一个资源文件是PowerPoint演示文稿,我想用PowerPoint打开演示文稿。如果我在Eclipse中运行代码一切正常,但如果我使用java -jar jarname.jar
运行可执行文件.jar,PowerPoint表示它无法读取文件。
是否可以读取打包的资源文件?或者只是执行jar能够读取这些文件?如果是这样你会怎么做?将文件写入临时文件夹?
如果我在eclipse中运行,那么绝对的演示路径:
C:\Users\RPR\workspace\CommandLineExecuter\bin\blaa.pptx
运行可执行jar时的绝对路径:
C:\Users\RPR\workspace\CommandLineExecuter\file:\C:\Users\RPR\workspace\CommandLineExecuter\CommandLineExecuter.jar!\blaa.pptx
即使我将路径硬编码到C:\Users\RPR\workspace\CommandLineExecuter\CommandLineExecuter.jar!\blaa.pptx
我加载资源的代码:
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 :(得分:1)
如果您使用getResourceAsStream()
,则可以从JAR中提取文件并将其放在PowerPoint可以访问的位置。
例如,create a temporary file并使用IOUtils.copy()
将数据复制到指向临时文件的FileOutputStream
。
最后,将此临时文件路径传递给PowerPoint。