4

我将一系列相关项目置于 Git 控制之下(所有这些项目都在同一个工作区,这是 Git 存储库的顶层)并从我的桌面(32 位)克隆到我的笔记本电脑(64 位)所以我可以在任何地方处理它们。工作区.metadata文件夹被排除在外,但项目文件夹中的所有内容都会被跟踪。

当我在笔记本电脑上打开克隆的工作区时,我遇到了一个错误:

Project 'project' is missing required library:
'/usr/eclipse/plugins/org.eclipse.swt.gtk.linux.x86_3.5.2.v3557f.jar'

显然,64 位 eclipse 没有 32 位库,但我很好奇应该如何解决这个问题。

该库已作为 Window Builder SWT/JFace 项目模板的一部分添加。eclipse plugins 文件夹中有一个org.eclipse.swt_3.5.2.v3557f.jar,但是更改类路径以查找它不起作用(奇怪的是,找不到 SWT)。查看 SWT/JFace 项目文件的其余部分.classpath,这个特定的库是唯一一个如此特定于平台的库。

我将库的两个版本都放入其中.classpath,这允许代码构建/运行,尽管我必须忽略构建路径错误,当我拉回笔记本电脑的更改时,此错误将传播回我的桌面。

我可以将笔记本电脑上的 64 位 jar 符号链接到 32 位名称,以便类路径可以找到该库吗?还有其他更好的解决方案吗?

更新:看起来这种类型的项目必须依赖于具体的 SWT 片段,所以在有更好的解决方案之前,我将在两台机器上对有问题的片段进行符号链接,以将编译器引导到正确的片段。在其他机器(尤其是 Windows)上构建/运行项目会非常有趣!!但是当我到达那里时,我会建造那座桥。

4

4 回答 4

1

您正在开发哪种类型的项目?java项目还是插件项目?

如果您正在开发插件项目,您的项目不应直接依赖于具体的 swt 片段(如 swt.gtk、swt.win32)。swt的实际实现是不同平台的不同片段,应该取决于宿主插件'org.eclipse.swt'。

如果您正在开发一个需要 swt 作为第三方要求的 java 项目。您可以为 32 位和 64 位 eclipse 安装 eclipse delta 包。

于 2010-12-04T14:31:20.730 回答
1

你到底在源代码控制中保留了什么?

最佳做法是在源存储库中仅保留手写源文件。不是二进制文件、生成的文件或 IDE 设置。

我认为您的 64 位 Eclipse 的 IDE 设置有问题,无法使用 32 位。

只需删除.metadata工作区中的目录,然后重新导入此 Eclipse 中的所有项目。

于 2010-12-03T22:40:10.383 回答
1

不要对整个工作区执行此操作。只需对单个项目进行操作即可。在这里工作得很好。

于 2010-12-03T22:38:10.003 回答
0

为避免平台问题,您还可以考虑使用 Maven。使用 Maven 2 或 3,可以很容易地解决配置文件平台问题的可选组合。使用 Eclipse 的一些 Maven 插件,可以将 Maven 项目直接导入 Eclipse。

于 2010-12-04T14:54:36.670 回答