当前位置: 首页 > 知识库问答 >
问题:

如何使jar可运行以保存图像

子车英达
2023-03-14

我有一个问题:我把我的图像放在我的项目文件夹中,例如,E:\All Work IT\Java All\JavaWork\TestingDB,当我使用这行代码来使用图像时

ImageIcon icon = new ImageIcon("start.png");

它工作得很好!但是当我想制作一个可运行的jar文件时(导出-

我需要把我的图像放在哪里来解决这个问题,用什么代码?谢谢。

共有2个答案

姜玮
2023-03-14

最简单的方法之一是将图像包含在jar文件本身中,这减少了部署所需的资源数量;部署单个jar比部署一个jar文件和一堆if图像容易得多

它还减少了执行上下文和必须计算相对路径的可能问题

实现这一点的人取决于构建jar的方式,例如在Netbeans和Eclipse中,可以将图像复制到src目录中。在maven中,需要将图像包含在resources目录中

这将改变您需要用来加载图像或资源的方式

例如,根据您的需要,您需要使用Class#getResourcesClass#getResourceAsStream

ImageIcon img = getClass().getResource("/start.png");

请记住,您需要使用src目录上下文中图像的完整路径

这意味着如果您将资源放置在src目录下的图像目录中,那么您将需要使用/图像/start.png例如

萧焱
2023-03-14

new ImageIcon(file)指定一个本地文件,该文件在JAR中不起作用。。尝试更改行以使用类加载器。

 new ImageIcon(getClass().getResource("/start.png"));

如果你处于静态环境中

 new ImageIcon(Foo.class.getResource("/start.png"));

我不确定您的项目结构或IDE(如果有的话),因此我无法就图像应该放在哪里提出任何建议。只需确保图像包含在JAR导出中,并最终位于顶层,或与getResource()调用匹配的结构

 类似资料:
  • 问题内容: 我正在尝试使用NetBeans在Java Maven项目中实现Akka。当我从NetBeans运行它时,它运行良好,但是当我从NetBeans运行可运行的jar时,它会产生错误。 当我在配置中添加日志接收消息时,它要求其他配置。这是我用来生成jar文件的插件。 我的依赖是 akka的配置是 问题答案: 在http://doc.akka.io/docs/akka/snapshot/gen

  • 问题内容: 我刚刚使用Python图像库(PIL)进行了一些图像处理,这是我之前发现的用于执行图像的傅立叶变换的文章,但是我无法使用save函数。整个代码运行良好,但不会保存生成的图像: 我得到的错误如下: 如何使用Pythons PIL保存图像? 问题答案: 已解决有关文件扩展名的错误,您可以使用(不带点)或将输出名称与扩展名一起传递。现在要处理该错误,您需要在频域中适当地修改数据以将其保存为整

  • 我在Eclipse中有一个maven项目。在src/main/resources下,我有一个名为“directoryToCopy”的目录,其中包含文件。一旦我运行了我的项目,我想将“directoryToCopy”复制到桌面上的本地目录“localDirec”下。 我用了这个: 这在本地工作正常,但是当我想将其作为可执行jar文件运行时,我会得到NullPointerException。 请问有什

  • 问题内容: 我正在使用Plotly offline在python中生成图形。 根据以下文档, https://plot.ly/python/offline/ 这是我的代码,可以完美地生成C:/tmp/test_plot.html文件。 如何将此图另存为png而不是html? 问题答案: 方法具有和 属性,可将文件另存为。 在上或在线查看更多详细信息。 但是,有一点需要注意的是,由于输出图像是与HT

  • 问题: 我对Tensorflow很陌生。我的具体问题是,我应该在ses中放入哪些特定参数。运行(fetches,feed\u dict)函数。例如,如何找出参数的值? 步骤: 以下是我在阅读其他帖子后对这些步骤的理解。 保存tranied tensorflow模型,它应该由4个文件组成,以下是我的输出: 检查点 将输入图像调整为神经网络所需的任何格式。 启动tensorflow会话。 检索图和相关

  • 如何在不使用docker hub的情况下在vm服务器上构建映像、另存为本地文件并在docker中运行。我尝试过保存或导出,但每次加载或导入图像时,都找不到命令。我在谷歌搜索了几天,但没有找到任何解释。我尝试了简单的blazor项目“打招呼”,使用docker文件制作图像,并将其加载到plesk中的docker中并运行它。有人能帮我解决这个问题吗。非常感谢。