我正在创建一个在屏幕上搜索特定图像的应用程序。我读取了我正在扫描的图片(文件)并将其转换为缓冲图像,然后转换为int[]
,以便我可以更快地处理它。我还使用机器人类来截取屏幕截图并转换为int[]
。
在Eclipse中运行代码并将文件放在源文件夹中时,我没有任何问题。但是在将我的代码导出到可运行的jar
文件后,我的扫描方法不再有效。我认为它可能与压缩有关,因为我的照片需要完全按照它们拍摄的方式。
我对“完成格式”的唯一成功是正常导出jar
,并使用名为images
的同一目录中的文件夹来保存文件。使用此代码:
File img = new File(System.getProperty("user.dir") + File.separator + "images" + File.separator + "Close.bmp");
直接从eclipse运行时我可以这样做:
File img = new File(src/Close.bmp);
有什么建议吗?也许出口罐子的一些提示/设置?
答案 0 :(得分:0)
您有多种选择:
可能最简单的就是放置image in the classpath,即将其与您的类文件一起部署,可能在jar文件中。缺点是您无法替换图像(只要您不希望用户使用类路径)
将它相对于user.dir
放置,在这种情况下,您需要了解user.dir实际上是什么:应用程序启动的工作目录。它将根据您的启动方式而有所不同。
另一种选择是使用相对于user.home
的路径,这是您的主目录。