我对学习JBox2D感兴趣,但我似乎偶然发现了第一个障碍 - 建立图书馆。
Quick-start instructions指定以下简单步骤:
我已经检查了代码并将项目导入IntelliJ IDEA(12.1.4),但是,当我尝试运行TestbedMain类(并随后编译代码)时,我收到以下错误:
java: duplicate class: org.jbox2d.common.PlatformMathUtils
java: duplicate class: org.jbox2d.common.Timer
我做错了什么/我错过了什么?
由于
答案 0 :(得分:1)
查看POM for the jbox2d-library module,我看到有一个构建部分明确忽略了gwtemul包下的类:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes>
<exclude>**/gwtemul/**</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
在我看来,我应该通过MVN构建这个库,并将构建的JAR附加为jbox2d-testbed模块的依赖项。
但是,我发现修改这些类的包声明也解决了这个问题:
package org.jbox2d.gwtemul.org.jbox2d.common;
/**
* A GWT-compatible implementation of the platform math utilities.
*/
class PlatformMathUtils {
public static final float fastPow(float a, float b) {
return (float) Math.pow(a, b);
}
}
因为无论如何它们都会被构建忽略,我不认为它会造成任何伤害。
一旦我这样做了,我就可以运行org.jbox2d.testbed.framework.TestbedMain类了,我得到了预期的GUI: