Java 在签名Jar、JNLP应用程序中加载图像时出错

Java 在签名Jar、JNLP应用程序中加载图像时出错,java,swing,jnlp,Java,Swing,Jnlp,我正在开发JNLP应用程序,并使用maven webstart插件创建JNLP。在本地运行应用程序时,它工作正常,但在使用jnlp的Tomcat服务器中运行时,它不会加载映像,也不会给出任何异常 我正在加载图像如下 new ImageIcon(getClass().getResource("/icons/save.png")) 我的代码有什么问题?没有更多信息很难说。您可以使用jar-tf查看图像是否在jar文件中。同时,这里有一个正在工作的JWS,可以加载图像以供参考。如果没有更多信息,很难

我正在开发JNLP应用程序,并使用maven webstart插件创建JNLP。在本地运行应用程序时,它工作正常,但在使用jnlp的Tomcat服务器中运行时,它不会加载映像,也不会给出任何异常

我正在加载图像如下

new ImageIcon(getClass().getResource("/icons/save.png"))

我的代码有什么问题?

没有更多信息很难说。您可以使用
jar-tf
查看图像是否在jar文件中。同时,这里有一个正在工作的JWS,可以加载图像以供参考。

如果没有更多信息,很难说。您可以使用
jar-tf
查看图像是否在jar文件中。同时,这里有一个工作的JWS,可以加载图像供参考。

您的图标在哪里?如何在tomcat中运行jnlp应用程序?假设你没有很多图像,你可以把它们打包在你的一个包里。只需创建一个名为com.yourproject.resources的包,并在那里转储一些图像。那么访问它们的方式将是: //在某个类中定义它

public URL obtainImageResource ( String nameOfResource )
    {
        return getClass().getResource( "/com/yourproject/resources/" + nameOfResource );
    }
一定要给他们一个网址。 然后,要创建所需的内容:

BufferedImage yourImage = ImageIO.read( yourclaass.obtainImageResource( "yourimagepng.png" ).openStream() );

注意:在我的设置中,您需要将图像打包到jar中

你的图标在哪里?如何在tomcat中运行jnlp应用程序?假设你没有很多图像,你可以把它们打包在你的一个包里。只需创建一个名为com.yourproject.resources的包,并在那里转储一些图像。那么访问它们的方式将是: //在某个类中定义它

public URL obtainImageResource ( String nameOfResource )
    {
        return getClass().getResource( "/com/yourproject/resources/" + nameOfResource );
    }
一定要给他们一个网址。 然后,要创建所需的内容:

BufferedImage yourImage = ImageIO.read( yourclaass.obtainImageResource( "yourimagepng.png" ).openStream() );

注意:在我的设置中,您需要将图像打包到jar中

我将图像打包在主jar文件中。你的解决办法和我的一样。我的意思是使用tomcat创建一个静态html页面和链接的jnlp文件。当用户单击链接时,自动下载并运行jnlp应用程序。那么为什么要使用TomcatServlet容器呢?如果您只需要它来承载一个静态html页面和链接的jnlp页面,那么可以尝试使用普通的apache,您只需要一个普通的web服务器,而不需要servlet容器。你的解决办法和我的一样。我的意思是使用tomcat创建一个静态html页面和链接的jnlp文件。当用户单击链接时,自动下载并运行jnlp应用程序。那么为什么要使用TomcatServlet容器呢?如果您只需要使用普通的旧apache来承载静态html页面和链接的jnlp页面,那么您只需要一个普通的web服务器,而不需要servlet容器。感谢示例应用程序。我的图像位于jar文件中。我也检查过了。如果jnlp在tomcat以外的其他服务器上,你能启动它吗?服务器的设置是否正确?感谢示例应用程序。我的图像位于jar文件中。我也检查过了。如果jnlp在tomcat以外的其他服务器上,你能启动它吗?服务器设置是否正确?JAR中图像的路径如何?myApplication.JAR/icons/save.png是路径。在jar内部,您将直接在/icons/save.png中看到图像。然后,一切都是正确的。是否可以使用“getClass().getResourceAsStream()”检查是否获得流?如果结果为“null”,则路径错误。如果您得到一个流,那么您的代码的其余部分似乎是错误的。JAR中图像的路径如何?myApplication.JAR/icons/save.png是路径。在jar内部,您将直接在/icons/save.png中看到图像。然后,一切都是正确的。是否可以使用“getClass().getResourceAsStream()”检查是否获得流?如果结果为“null”,则路径错误。如果您得到了一个流,那么代码的其余部分似乎是错误的。