0

我被要求更新我多年前工作的一些旧代码。所有在 xCode 中都没有 Eclipse,并且迫切需要更改,因此没有时间从 xCode ATM 迁移。

我得到了一个安装了 xcode 3.1.4 的 OS 10.5.8 机器,并且代码在本地编译得很好。

尝试部署从未奏效“Unsupported major.minor version 49.0 error”似乎服务器正在运行 JVM 1.4.2 我在本地有 1.6。我遵循了一些关于如何将本地计算机降级到 java 1.4.2 的说明,但没有成功。

所以我放弃了,把网站的旧副本放回服务器上。但是现在服务器上的所有站点都收到相同的错误消息,即使它们在 3-4 年内没有被触及,它们也不会启动。不知道发生了什么?我唯一合乎逻辑的解释是我不小心在服务器上而不是在本地执行了一项操作?无论哪种方式,我都不知道出了什么问题或如何解决?

  • 我从哪里开始尝试调试呢?
  • 我可以在服务器(OS 10.3.9)上安装新版本的 java 1.5 或 1.6 并使其与 webobjects 一起工作吗?
4

1 回答 1

1

这个项目是框架还是应用程序?如果它是其他 WebObjects 项目所依赖的框架,那就可以解释为什么当你更新这个项目时一切都开始失败了。

默认情况下,Xcode 没有在 Project.woa 包中包含(或“嵌入”)任何依赖的库或框架。以这种方式构建的应用程序取决于在几个特定位置可用的任何所需资源,然后在启动时加载它们。如果它们现在都链接到不兼容的框架或库,那么它们都将停止工作。

就实际的“Unsupported major.minor version”错误而言,您不需要降级 Mac 上的 Java 版本,您可以简单地告诉编译器以较旧版本的 Java 为目标。

我不记得 Xcode 是否使用 Ant 进行 Java 编译,但如果使用 Ant 并且您使用的是 Ant 1.7 或更高版本,您可以通过编辑 build.xml 文件强制 Ant 使用 Java 1.6 编译 1.4 兼容的二进制文件,以便javac 标记包括一个“目标”参数,例如:<javac target="1.4" ... />或者通过在ant.build.javac.target调用 Ant 时传入属性,或者通过命令行或通过修改 Ant 将加载的属性文件。我相信 build.properties 仍然存在于基于 Xcode 的 WebObjects 项目中。如果是这样,这将是该物业的好地方。

这个stackoverflow问题涵盖了基础知识:How to compile classes to JDK1.5 when ant is running in JDK1.6

于 2012-02-08T03:54:37.797 回答