2013-01-21 31 views
0

我有一个用Java开发的应用程序,几乎可以发布了。但是,我从开发env切换到发布env并回到开发中遇到问题。例如,在Eclipse中,如果我只想通过运行按钮进行测试运行,则必须更改代码,以便显示我的JMenuItems。Java分发代码与开发代码

在我的开发环境,我有这样的运作良好的情况如下:

JMenuItem[] appItems = new JMenuItem[2]; 
appItems[0] = new JMenu("New"); 
appItems[0].setIcon(new ImageIcon(../POS_System/images/new_icon_sm.png"))); 

但是,正如我附近部署,得到这个在可部署JAR工作,我需要修改代码:

JMenuItem[] appItems = new JMenuItem[2]; 
appItems[0] = new JMenu("New"); 
appItems[0].setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/new_icon_sm.png"))); 

这是为了进入JAR并获得合适的图像。

我有很多这些JMenuItems。我真的很希望能够通过Eclipse中的运行按钮来测试应用程序,以及在不更改代码的情况下创建JAR。

有没有简单的方法来做到这一点?我认为getResource方法仍然允许我使用JMenus,JMenuItems等,但是当我从Eclipse运行程序时它们不可用。看起来很愚蠢,我必须不断来回切换。

我欣赏这里的任何帮助。

+1

这可能是这个问题的重复:http://stackoverflow.com/questions/12290265/load-image-to-program-to-work-with-jar 看到我对这个问题的答案为例介绍如何使用完全相同的代码在开发和生产环境中加载图像。 – CodeBlind

+0

感谢您的回应。不过,我必须说,这种技术似乎有点“混乱”。我还希望组织我的文件系统,以便图像不在我保存java包的src文件夹中。任何人有任何想法?如果我必须使用这种技术,我会,但不愿意。 – Matt

+0

我知道的唯一的其他选项是将图像文件夹保存在相对于当前工作目录的某处。所以在你的IDE中,它会是[项目文件夹] /图像,然后是[安装文件夹] /图像。但对我而言,这看起来更像是一个混乱,而不是将所有不可变图像保存在最终用户隐藏的罐子里。 – CodeBlind

回答

0

如果您不想按照您的建议将图像移动到src /文件夹中,那么在Eclipse中,您应该在Project Prooperties - > Java Build Path下更新Eclipse配置并添加一个额外的源文件夹,一个指向你保存图像的位置。我相信这会解决它。