【问题标题】:Java Desktop applicationJava 桌面应用程序
【发布时间】:2010-10-17 21:30:10
【问题描述】:

这是一个问题,但有几个子问题。我正在计划一个使用 Java 的桌面应用程序,并且我使用 NetBeans 作为 IDE。问题:

  1. 为什么有这么多 Java 版本? Java、Java SE、Java EE、Java Me

  2. 我希望应用程序在本地存储数据,什么是最好的 Java DB 或 SQLite?

  3. 我需要什么额外的东西来为我的客户创建一个安装文件来安装应用程序吗?

  4. 是否有类似于 .Net OneClick 的 Java 解决方案让客户端更新到应用程序的最新版本?

  5. 我计划在 Windows 中运行该应用程序,但如果我必须移植到 Mac 或 Linux,这有多难?

【问题讨论】:

  • 其实这是与单个项目相关的五个问题。你可能会得到更好的结果单独询问。

标签: java database


【解决方案1】:
  1. 有不同的 java 库用于不同的目的。例如,Java ME 是为手机/移动设备设计的。除非您需要 EE 的某些功能,否则您可能会很好地使用 java SE。

  2. 根据数据存储的复杂程度,您甚至可能不需要“数据库”。在java中,任何实现“可序列化”接口的对象都可以直接写入文件。所以,如果你只是想存储诸如用户设置之类的东西,你可以创建一个对象来存储它们,实现 Serializable,然后将其写入磁盘。

  3. 仅当您的应用程序链接到您不想打包在同一目录中的代码库时。您可以将其打包为来自 netbeans 的自执行 JAR,其功能类似于 .exe

  4. (耸耸肩。)

  5. 如果您注意不要使用操作系统特定的路径,自执行 jar 将立即在任何安装了 JVM 的操作系统上运行。可能还有其他一些怪癖,但 Java 被构建为非常便携。

【讨论】:

  • “可能还有一些其他的怪癖,但 Java 被构建为非常便携。” Java:一次编写,到处调试;-)
  • 我不是很喜欢序列化所有东西,修改一个类可能意味着所有数据都丢失了。 @Chris,那是巨魔吗?
  • 是的。但是,如果您修改架构,您最终可能会遇到任何数据存储系统的问题。
  • @Colin Hebert:不,只是有点幽默。
【解决方案2】:
  1. 因为您并不真正需要无处不在的一切。例如,您实际上不需要使用计算机上的 GPRS 或 SMS,或手机上的 ORM。每个版本都针对特定环境。通过这种方式,您可以为移动设备提供更轻松的环境,并为企业应用程序(您并不真正需要标准应用程序)提供更多组件。
  2. 我建议您使用 JavaDB(或 Derby),但这取决于您
  3. 并非如此,您可以提供a nice solution 来安装您的应用程序,但这不是必需
  4. 有(我不记得了,但其他答案肯定会有所帮助)
  5. 真的很容易,特别是对于 unix 应用程序,可执行文件的创建基本上是直接启动的 .sh 文件(你当然可以在 UNIX 上拥有一个真正的可执行文件,但是拥有 .sh 文件确实很常见且更容易维护)(您也可以在 Windows 上使用 .bat 文件,但假设这种情况不太常见)

我重新阅读了这个问题,可能还没有真正回答最后一点(我仍在创建 .exe)所以这里是第二个镜头:

5.Java 的主要目标是到处移植。只要您的代码不使用系统的特殊性(或受 ifs 保护),您的代码就可以在任何地方工作。当然,您必须使用相同的 java 版本(edition,而不是 version)和相同的库,否则您可能会遇到问题。

【讨论】:

    【解决方案3】:
    1. 为什么有这么多Java? Java、Java SE、Java EE、Java Me

    这么多环境。前两个是桌面,EE是服务器端,ME是手机。

    ..3.我需要什么额外的东西来为我的客户创建一个安装文件来安装应用程序吗?

    使用Java Web Start

    这也包括 4. 和 5.

    我对哪个是“最好的”数据库没有意见,但请注意,对于少量数据,JWS 提供了甚至沙盒应用程序的机制。可以存储和检索信息,或者可以将 installer-desc 元素包含在启动文件中以安装/设置数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-15
      • 2018-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多