我被要求更新一些我多年前工作过的旧代码。所有在xCode中都没有eclipse,急需更改,所以没有时间从xCode ATM迁移。
我得到了安装了xcode 3.1.4的OS 10.5.8盒子,并且代码在本地编译得很好。
尝试部署从未工作“不支持的major.minor版本49.0错误”似乎服务器正在运行JVM 1.4.2我本地有1.6。我按照一些指示说明如何将本地计算机降级到java 1.4.2但没有成功。
所以我放弃了将旧网站的副本放回服务器上。但是现在服务器上的所有站点都会收到相同的错误消息,即使它们在3 - 4年内没有被触及,它们也都不会启动。不确定发生了什么?我唯一的逻辑解释是我不小心在服务器上做了一个动作而不是在本地?无论哪种方式,我都不知道出了什么问题或如何解决它?
答案 0 :(得分:1)
这个项目是框架还是应用程序?如果它是其他WebObjects项目所依赖的框架,那么这将解释为什么在更新此项目时一切都开始失败。
默认情况下,Xcode不包含(或“嵌入”)Project.woa包中任何依赖的库或框架。以这种方式构建的应用程序取决于在几个特定位置可用的任何所需资源,然后在启动时加载它们。如果他们现在都链接到不兼容的框架或库,那么他们都将停止工作。
就实际的“不支持的major.minor版本”错误而言,您不需要降级Mac上的Java版本,只需告诉编译器定位旧版本的Java。
我不记得Xcode是否使用Ant进行Java编译,但是如果它使用Ant 1.7或更高版本,则可以通过编辑build.xml强制Ant使用Java 1.6编译1.4兼容的二进制文件文件,因此javac标记包含“target”参数,例如:<javac target="1.4" ... />
或通过在调用Ant时传入ant.build.javac.target
属性,可以通过命令行或修改Ant将加载的属性文件。我相信build.properties仍然存在于基于Xcode的WebObjects项目中。如果确实如此,这将是该物业的好地方。
此stackoverflow问题涵盖了基础知识:How to compile classes to JDK1.5 when ant is running in JDK1.6