-5

如何使用 Java 开发跨平台应用程序

4

2 回答 2

4

由于 java 是平台独立的,它可以在所有移动设备上运行。所以我想在 java 中创建一个应用程序,它应该在 iOS、Android、黑莓和所有移动平台上运行。

这是基于一种误解。Java 声称的平台独立性并不意味着 Java 将在所有平台上运行。可能有数千种平台类型不会也不会运行 Java。

它甚至不意味着 Java 可以在所有移动设备上运行。

  • 没有适用于 iOS 的 Java 实现。IIRC,Apple 通过他们对 Apple 应用商店的控制明确禁止/排除它。

  • 任何移动设备都没有 Java SE,因为 Oracle 拒绝授予许可……以保护 Java ME。

  • 黑莓等是 Java ME,而不是 Java SE。事实上,Java ME 是分散的,因为不同的智能手机制造商实现了不同的 Java ME“配置文件”。

  • Android 不是 Java。Java SE 的大部分不存在,UI 库完全不同。

简而言之,你想做的事情是不现实的。


“一次编写,到处运行”的口号实际上只适用于基于 Oracle / Sun 代码库的 Java SE 实现。即便如此,也有一些警告。

于 2013-01-11T06:03:12.287 回答
1

这是一个真正被误导的问题,但我会本着加深理解的精神回答它,我担心它很快就会被关闭。我希望这个问题是真实的,而不仅仅是拖钓。

Java的“环境”不是语言是平台独立的。Java 环境包含 Java 虚拟机和一组标准库,这些库与特定的实时运行平台挂钩。

Java 应用程序是独立于平台的,因为它将在任何存在 Java“环境”的平台上运行。

Java 有各种版本,例如标准版 (J2SE),旨在在桌面上运行。

有适用于 Windows、Linux 和 OS X 的 J2SE 构建,因此为该环境构建的应用程序将在所有这些平台上运行。

有一个移动版 Java (J2ME) 允许应用程序在功能手机使用的多个不同操作系统中运行(假设它们具有应用程序所需的功能)。但这是因为功能手机的几种不同操作系统支持 J2ME**。

唉,这不是当前一代智能手机的情况。所有(甚至一个)主要智能手机操作系统都不支持标准的 Java 环境。

因此,Java 目前不能用于(智能手机)移动平台独立应用程序。

** 不完全正确,因为每个操作系统似乎都有其 J2ME 实现的怪癖,但足够接近。

于 2013-01-11T05:51:28.760 回答