我一直工作在一个Java程序的公司在今年夏天的Java程序,并已接近尾声。作为一名新手程序员,我从来没有制作过使用我创建的文件在其他系统上使用的程序。我的程序使用Apache Poi读取和写入Excel,目前使用的Excel文件位于程序指定的特定目录中。该程序还使用了一些位于代码指定的目录中的图像。生产用于其它系统
我怎么可能让其他系统上这个程序可运行?当程序“安装”在另一个系统上时,程序是否可以创建一个Excel文档?
目前我使用Eclipse和系统是Windows 7的
我一直工作在一个Java程序的公司在今年夏天的Java程序,并已接近尾声。作为一名新手程序员,我从来没有制作过使用我创建的文件在其他系统上使用的程序。我的程序使用Apache Poi读取和写入Excel,目前使用的Excel文件位于程序指定的特定目录中。该程序还使用了一些位于代码指定的目录中的图像。生产用于其它系统
我怎么可能让其他系统上这个程序可运行?当程序“安装”在另一个系统上时,程序是否可以创建一个Excel文档?
目前我使用Eclipse和系统是Windows 7的
您可以打包在一个.jar您的应用程序,其实里面的.class文件zip文件并资源文件。这些资源文件,如图像,可以用getClass().getResource("path/x.png")
或getResourceAsStream
拍摄。路径可以是包相对或绝对的:“/abc/def.jpg”。
这些资源必须是只读的(因为它们是该.jar内)。但是,您可以将Excel 模板存储为资源,并将其复制到用户的目录。
System.getProperty("user.home")
将提供用户的目录,您可以将资源复制到。
Path appWorkspace = Paths.get(System.getProperty("user.home"), "myapp");
Files.createDirectories(appWorkspace);
Path xlsx = appWorkspace.resolve("untitled.xlsx");
Files.copy(getClass().getResourceAsStream("/data/empty.xlsx"),
xlsx);
谢谢,这似乎像什么,我正在寻找,但我唯一担心的是被覆盖的Excel文件,但我认为我可以只检查文件是否存在绕开这个问题。 –
'Files.copy'(以及其他功能)具有'StandardCopyOption.REPLACE_EXISTING'和这样的可变参数的参数。 –
试过测试这段代码,但我在路径xlsx行上得到一个空指针异常,应该在我的项目中有一个名为data的文件夹?此外,untitled.xlsx似乎并未出现在myapp中。 –
为什么安装时需要创建Excel文档?如果您希望它在其他系统上正常工作,请不要硬编码路径。使它们可配置或让用户在生成时选择它。 – Kayaman
正如我所说我是Java新手,我在问我如何使它在其他系统上工作。 –
尝试在另一个系统上运行它,并解决出现的每个问题。 –