Java-如何打开位于jar文件中的文件
我正在使用eclipseJava-如何打开位于jar文件中的文件,java,Java,我正在使用eclipse我在我的src文件夹中放了一个.pdf文件,我想用默认的操作系统程序打开它。问题是,如果我用eclipse执行程序,我可以像这样打开它(单击菜单项): File memo=new File("src/chap.pdf"); try { Desktop.getDesktop().open(memo); } catch (IOException e) { e.printStackTrace();
我在我的
src
文件夹中放了一个.pdf文件,我想用默认的操作系统程序打开它。问题是,如果我用eclipse执行程序,我可以像这样打开它(单击菜单项):File memo=new File("src/chap.pdf");
try {
Desktop.getDesktop().open(memo);
} catch (IOException e) {
e.printStackTrace();
}
但是,在将项目导出到jar文件后,这将不再起作用。
那么,我的代码中是否存在问题,或者是否有其他方法可以在jar文件中打开该文件?导出程序后,
src
路径将不可用,您不应该以任何方式引用它
您需要从Jar文件中提取资源并将其写入本地磁盘
try (InputStream is = getClass().getResourceAsStrea("/chap.pdf")) {
try (BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(...)) {
// Write contents like you would any file
}
} catch (IOException exp) {
exp.printStackTrace();
}
然后,您可以将提取的文件与
桌面一起使用导出程序后,src
路径将不可用,您不应以任何方式引用它
您需要从Jar文件中提取资源并将其写入本地磁盘
try (InputStream is = getClass().getResourceAsStrea("/chap.pdf")) {
try (BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(...)) {
// Write contents like you would any file
}
} catch (IOException exp) {
exp.printStackTrace();
}
然后,您可以将提取的文件与桌面一起使用导出程序后,src
路径将不可用,您不应以任何方式引用它
您需要从Jar文件中提取资源并将其写入本地磁盘
try (InputStream is = getClass().getResourceAsStrea("/chap.pdf")) {
try (BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(...)) {
// Write contents like you would any file
}
} catch (IOException exp) {
exp.printStackTrace();
}
然后,您可以将提取的文件与桌面一起使用导出程序后,src
路径将不可用,您不应以任何方式引用它
您需要从Jar文件中提取资源并将其写入本地磁盘
try (InputStream is = getClass().getResourceAsStrea("/chap.pdf")) {
try (BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(...)) {
// Write contents like you would any file
}
} catch (IOException exp) {
exp.printStackTrace();
}
然后,您可以将提取的文件与桌面一起使用您应该将该文件恢复为一个资源,如下所示:只需做一个小检查,选择jar文件并将其解压缩,或者将.jar分解为文件夹层次结构。检查它是否包含.pdf文件。您应该将该文件恢复为一个资源,如图所示:只需做一个小检查,选择jar文件并解压缩它,或者将.jar分解为文件夹层次结构。检查它是否包含.pdf文件。您应该将该文件恢复为一个资源,如图所示:只需做一个小检查,选择jar文件并解压缩它,或者将.jar分解为文件夹层次结构。检查它是否包含.pdf文件。您应该将该文件恢复为一个资源,如图所示:只需做一个小检查,选择jar文件并解压缩它,或者将.jar分解为文件夹层次结构。检查一下.pdf是否包含在itinside try块中,java.io.File#createTempFile是一种合适的方式???@SrinathGanesh,这取决于您。如果您想节省时间,可以将文件提取到“已知”位置,并在再次提取之前检查它是否存在…在try block中,java.io.file#createTempFile将是一种合适的方法???@SrinathGanesh这取决于您。如果您想节省时间,可以将文件提取到“已知”位置,并在再次提取之前检查它是否存在…在try block中,java.io.file#createTempFile将是一种合适的方法???@SrinathGanesh这取决于您。如果您想节省时间,可以将文件提取到“已知”位置,并在再次提取之前检查它是否存在…在try block中,java.io.file#createTempFile将是一种合适的方法???@SrinathGanesh这取决于您。如果您想节省时间,可以将文件解压缩到“已知”位置,并在再次解压缩之前检查文件是否存在。。。