java - 获取 .pkg 文件的版本?

标签 java macos

我有一个用于 MAC OSX 的 Java 应用程序,我已经对其进行了编码并制作了一个 .pkg。在创建 .pkg 时,我也给了它一个版本号。现在我需要在我的 java 代码中获取此应用程序的版本号,以便我可以在应用程序运行时检查更新。当我右键单击我的应用程序文件时,它没有显示我在创建包时输入的版本。

我是否需要设置我使用 jar 打包器创建的用于构建 pkg 的应用文件的版本???

请建议我如何完成此任务。

最佳答案

您在创建包时设置的版本号(在 PackageMaker 项目中)是安装程序的版本,而不是您的 .app 文件的版本。它是必需的,以便另一个安装程序可以查看他是否降级当前安装。安装程序永远不会查看它正在安装到系统中的内容。

要设置您的 .app-Bundle 的版本,请右键单击您的 .app 文件并从出现的菜单中选择“显示包内容”。打开文件夹“Contents”,您会在其中找到一个名为“Info.plist”的文件。你必须编辑这个文件并且必须在那里为你的应用程序设置你的版本信息。您可以使用属性列表编辑器(包含在 Apple Developer Tools 中)或其他工具(如 BBEdit)来执行此操作例如。

要在应用程序中读取 .plist,您需要一个特殊的库。我推荐 Java property list library来自 Daniel Dreibrodt(有关 .plist 格式的更多信息,您可以在 this post on my blog 中找到)。

一般来说,您应该设置应用程序包的版本信息,无论您是否将其用于更新目的。如果未设置,用户将无法在不启动您的软件的情况下获得有关他安装的版本的信息。

您需要的不是 .pkg 文件的版本,您需要的是 .app-Bundle 的版本。无论如何 - 你的 .pkg 文件版本的处理方式与你的 .app 文件相同。还有 Info.plist,您可以在其中找到信息。也可以用同一个库解析。

关于java - 获取 .pkg 文件的版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5202176/

相关文章:

java - Kaazing 与 jWebsocket

java - 使用 File.getAbsolutePath 时 ClassLoader.getResource 返回 null

java - 更改 Netbeans 自动完成

java - Maven 检测到错误的 java 路径

iphone - 计算 objective-c 中两个数的差

python - 写入文本时 Tkinter 在 MacOs 上不刷新

Python – time.time() 与 bash 时间

macos - 在 Mac OS mountain lion 上设置 Subversion Server(可以通过浏览器访问,但无法从 subversion 结帐)

java - 预验证类中的 Android 错误类引用解析为意外实现

java - 如何实现良好的客户端-服务器方法?