1.5.2 jar ファイルを使用して javax.vecmath に対してビルドしようとしています (たとえば、 Java.net http://java3d.java.net/binary-builds.htmlにあります)。
Point3d などの呼び出しを試みます。
public class Foo {
public static void main(String[] args) {
Point3d t = new Point3d(1.0, 1.0, 1.0);
System.out.println(t.getX());
}
}
64 ビット Windows および Linux (Ubuntu 10.04、64 ビットのみを試しました) では、これはコンパイルおよび実行されます。
OS X (10.6.7) ではコンパイルされません:
...: cannot find symbol
symbol : method getX()
location: class javax.vecmath.Point3d
System.out.println (t.getX());
これは、まったく同じ物理 vecmath.jar を使用しています
代わりにソースを直接使用すると、OS X でコンパイルされますが、実行されません。
Exception in thread "main" java.lang.NoSuchMethodError: javax.vecmath.Point3d.getX()D
OS X 上で自分でソースを jar ファイルにコンパイルし、上記の例でその jar ファイルを使用すると、やはりコンパイルできません。
アクセスされるフィールドは、x、y、z のパブリック フィールドを持つ抽象クラスである javax.vecmath.Tuple3d にあります。したがって、OS X ではこれが機能します (実際、どこでも機能するようです)。
public class Foo {
public static void main(String[] args) {
Point3d t = new Point3d(1.0, 1.0, 1.0);
System.out.println(t.x);
}
}
問題は、私は vecmath.jar に依存するコード ベースに取り組んでおり、メンテナーは Windows にいて、アクセサー メソッドを使い続けたいと思っていますが、私は OS X にいます。
私は両方を探しています:
(1) 何が起こっているかを理解する (2) vecmath.jar ファイルに依存しながら、これらのソースを移植可能にする方法を理解する。