Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 访问器方法在Windows、Linux下可见,但在OS X下不可见_Java_Java 3d - Fatal编程技术网

Java 访问器方法在Windows、Linux下可见,但在OS X下不可见

Java 访问器方法在Windows、Linux下可见,但在OS X下不可见,java,java-3d,Java,Java 3d,尝试使用1.5.2 jar文件(例如,可以在Java.net上找到)针对javax.vecmath进行构建 试着打个电话,比如说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 1

尝试使用1.5.2 jar文件(例如,可以在Java.net上找到)针对javax.vecmath进行构建

试着打个电话,比如说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

如果我直接使用源代码,它会在OSX上编译,但不会运行

Exception in thread "main" java.lang.NoSuchMethodError: javax.vecmath.Point3d.getX()D
如果我自己在OSX上将源代码编译成一个jar文件,然后在上面的例子中使用jar,同样,无法编译

现在,正在访问的字段位于javax.vecmath.Tuple3d中,它是一个抽象类,包含x、y和z的公共字段。因此,在OSX上,这将起作用(实际上,它似乎在任何地方都起作用)

问题是,我正在开发一个依赖于vecmath.jar的代码库,其中的维护人员在Windows上,希望继续使用访问器方法,但我在OS X上

我期待着这两个方面:

(1) 了解发生了什么 (2) 了解如何根据vecmath.jar文件使这些源代码可移植。

线程中的“异常”main“java.lang.NoSuchMethodError:javax.vecmath.Point3d.getX()”表示访问的不是1.5.2版本,而是苹果版本1.3的vecmath.jar。在1.5中引入了“getter”和“setter”方法

检查Mac上System/Library/Java/Extensions/中是否安装了苹果过时的Java 3D 1.3版。删除所有与Java 3D 1.3相关的文件,包括vecmath.jar(jar,jnilib),它们都是无用的


八月,InteractiveMesh

就是这样。我在其他地方搜索了vecmath.jar文件,但没有找到那个。谢谢。这里也有同样的问题。我必须在
System/Library/Java/Extensions
中替换
vecmath.jar
,才能让它正常工作。
public class Foo {
  public static void main(String[] args) {
    Point3d t = new Point3d(1.0, 1.0, 1.0);
    System.out.println(t.x);
  }
}