java - Inno Setup Compiler - JavaFX 应用程序不写入文件

标签 java file directory phantomjs inno-setup

我编写了一个简单的 JavaFx 应用程序,它使用 PhantomJS 访问一系列 url,并将屏幕截图保存到同一目录中的文件夹中。例如,如果 jar/exe 位于文件夹“my-app”中,它会将屏幕截图保存到“my-app/screenshots”中。然而,在使用Inno Setup Compiler创建安装程序,在我自己的计算机上安装该应用程序,然后运行安装程序创建的版本后,它无法保存任何内容。可能是什么问题?这是创建/保存图像时我的代码的示例:

byte[] bytes = phantomDriver.getScreenshotAs(OutputType.BYTES);
File outputFile = new File(outputFolder, String.format("/Home Page/Home_Page-%s.jpg", timestamp));
outputFile.getParentFile().mkdirs();
FileUtils.writeByteArrayToFile(outputFile, bytes);

感谢您提前提供的帮助

最佳答案

应用程序通常安装到 Program Files 文件中。您不能在那里写入文件(除非应用程序以提升的权限运行,但不建议这样做)。

您应该修改应用程序以将文件写入用户配置文件或可配置位置。

如果应用程序写入当前工作目录,作为快速破解,您可以修改安装程序创建的快捷方式,将工作目录设置为用户配置文件。

关于java - Inno Setup Compiler - JavaFX 应用程序不写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41400534/

相关文章:

java - Swing JLayeredPane.getLayer() - 文档错误或实际副作用?

java - 如何以 FIFO 顺序从文件夹中轮询文件

c - IFileOperation::DeleteItem 在系统目录 .Local 中不起作用

git - Git 中的文件级别跟踪(来自同一目录中多个分支的文件)

file - 批处理脚本编程——如何允许用户从文件夹中的文件列表中按编号选择文件?

java - 在 Raspberry Pi 4 上安装 Java 16

java - 如何使用 JDA 添加多个 react 来嵌入消息

c++ - 特征库 --> 使用来自文件或现有 std::vector<string> 内容的数据初始化矩阵 (c++)

c++ - popen() 将执行命令的输出写入 cout

java - 在 ant 构建期间排除依赖项目的 jar