1

我正在使用 Java 在 Linux 上编写屏幕捕获程序。我怎样才能ImageIO.write()像在 Windows 上使用它一样使用它:

ImageIO.write(screenshot, "png", new File("c:/output.png"));
4

2 回答 2

2

在 Linux 上没有“C:\”驱动器。相反,您的驱动器安装在安装点(通常/)。您可以使用以下任何一种写入您的主目录(相当于 Win7 的C:\Users\yourusername\):

ImageIO.write(screenshot, "png", new File("/home/yourusername/output.png"));
ImageIO.write(screenshot, "png", new File("~/output.png"));

或临时文件夹(如果您有权限):

ImageIO.write(screenshot, "png", new File("/tmp/output.png"));

您还可以使用简单的方法写入当前目录:

ImageIO.write(screenshot, "png", new File("output.png"));

要查找驱动器的安装点,df -h请在终端中运行以查看所有已安装的驱动器。

于 2013-05-19T22:28:57.800 回答
1

如果您正在编写屏幕捕获程序,那么您可能希望使用 FileChooser 来允许用户选择输出文件的位置。

这是一个如何实现的简单示例:

JFileChooser jfc = new JFileChooser();
int returnVal = jfc.showSaveDialog();

if(returnVal == JFileChooser.APPROVE_OPTION) {
    File outputFile = jfc.getSelectedFile();
    ImageIO.write(screenshot, "png", outputFile);
}

这也将有助于使您的代码完全跨平台,而不是将特定于平台的路径硬编码到程序中。

于 2013-05-19T22:36:20.290 回答