java - 将二进制文件复制到 jar 之外

标签 java jar exe java.util.scanner getresource

我的 jar 文件中打包了一个 exe 文件,我正在尝试将其复制到临时位置,以便我可以使用 Desktop.browse() 运行它,为此我设置了一个使用 class.getResourceAsStream 与输入流构造函数进行扫描,然后使用 printwriter 将所有内容写入文件。出现的问题说exe无效。我认为这是由于一些二进制数据丢失造成的。如果有人可以提供帮助,请发表评论。

    Scanner sc = new Scanner(ClassBuilder.class.getResourceAsStream("jd-gui.exe"));
    File copy = new File("C://users//Owner//Desktop//java//jd-gui.exe");
    copy.createNewFile();
    PrintWriter writer = new PrintWriter(copy);

    while(sc.hasNextLine())
        writer.println(sc.nextLine());

    writer.flush();
    writer.close();
    sc.close();

    Desktop.getDesktop().browse(copy.toURI()); 

最佳答案

正如已经提到的,使用流来存储二进制数据。 Commons io 使复制流变得容易。像这样的东西:

InputStream in = getClass().getResourceAsStream("jd-gui.exe");
OutputStream out = new FileOutputStream("jd-gui.exe");
IOUtils.copy(in, out);

关于java - 将二进制文件复制到 jar 之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15558626/

相关文章:

java - 如何将.jar文件添加到javac编译中(Windows 10)

java - 在 ReSTLet/GAE 中发送回压缩的 JSON

java - 在 Android 中将调用转发到语音信箱?

java - 我可以将整个 Android 应用程序打包到库中吗?

java - 将属性文件条目添加到java中 list 文件的类路径条目中

java - 将树布局保存到文件中。如何有效实现?

java - 找到了接口(interface) org.apache.hadoop.mapreduce.TaskAttemptContext,但是应该有类

python - 如何使用 py2exe 将我的 scrapy spider 构建为 exe 文件?

python - 如何将多个python文件转换为EXE?

php - 使用 PHP 执行 .exe 文件