【问题标题】:Java, publish with local foldersJava,使用本地文件夹发布
【发布时间】:2014-01-24 07:05:37
【问题描述】:

我有一个 Java 桌面程序,它使用“文件”文件夹来保存日志和“图像”文件夹来获取其 gui 的图像。 我想用可见的“.class”文件发布这个程序(以便我可以更新它们)。

1-) 在 Eclipse 中,当我使用 export--> Jar 或 export-->Executable Jar 选项时。它将所有东西都包装在一个罐子里,我的程序不起作用(可能是因为它找不到图像文件)。 我想我记得一种在使用 eclipse 时发布代码但找不到它的方法:/。我如何发布我的代码,将我想要的文件夹与程序一起保存?

2-) 保留可见的“.class”文件以进行更新是一个坏主意吗? (我不,也希望人们潜入代码,因为它会有数据库 url 之类的)。我的替代方案是什么? 你如何进行更新?

感谢您的回答,如果我问了一些已经被问过并回答过无数次的问题,请原谅我:/(。

【问题讨论】:

  • 更新包含所有内容的单个 jar 文件比更新单个 .class 文件要容易得多。您应该将所有内容打包在一个 jar 文件中,并向我们展示您的项目布局、生成的 jar 的内容以及相关代码,以便我们向您解释为什么加载图像不起作用。
  • 由于 jar 文件只是一个 zip 文件,您对 visible .class 文件的安全问题同样适用。

标签: java eclipse jar


【解决方案1】:

哇,您的评论在我脑海中闪耀=)。 问题解决了:)。

我所做的是, 导出可运行的 jar,并选择要复制到文件夹中的库。 然后,我将外部文件夹,即“文件”和“图像”文件夹复制到我的 jar 文件所在的文件夹中。 它奏效了! =)。

//对于第二个问题,是的,这样“.jar”文件很小,因此可以轻松更新。

对于第二个问题,我按照建议将图像显示为资源(可以通过右键单击 eclipse 中的相关文件夹来完成)。

感谢您的评论。

【讨论】:

  • 你最好把图片和文件也存放在jar里面。
  • 但它会增加 jar 的大小?如果更新,会不会有问题?还有,我怎样才能从我的代码中解决它们?
  • 那又怎样?您是否有成千上万的高质量图像,以至于替换整个罐子而不是单个图像会导致问题?我的猜测是你有几个图标,这会增加几 KB 的 jar 大小。而且,就像 .class 文件一样,更新单个 jar 文件比更新多个单独的图像更容易。要从 jar 文件(实际上通常是从类路径)加载图像,请参阅 stackoverflow.com/questions/16486858/…stackoverflow.com/questions/17085692/…
【解决方案2】:

一旦您开始使用 maven 作为构建环境,这些问题就会消失。 如果您想将 java 代码部署到外部世界(坚持标准模式),打包和资源处理很重要。

在你的 Jar 中加载资源的一种常见模式(据我所知,来自你的 java 代码)是使用

MyClass.class.getRessourceAsStream("yourfile.whatever")

或者使用 FileIO。

外面有很多关于maven 的教程和资源,它可以帮助您不必担心在构建过程中手动复制任何内容。除了编码之外的一切都应该由您的环境自动化。

【讨论】:

    猜你喜欢
    • 2022-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-09
    • 2016-02-11
    • 2012-12-26
    • 1970-01-01
    相关资源
    最近更新 更多