无法编译依赖于java3d的软件,类路径上有相关JAR

无法编译依赖于java3d的软件,类路径上有相关JAR,java,ant,classpath,java-3d,Java,Ant,Classpath,Java 3d,我正在构建一个依赖于java3d包的软件。编译时,我收到以下错误消息 [javac] warning: [options] bootstrap class path not set in conjunction with -source 1.6 ViewManager.java:162: error: package javax.media.j3d does not exist 还有许多其他错误表明java3d包不存在或至少不可访问。但是,如果我echo$CLASSPATH,我会得到以下输出

我正在构建一个依赖于java3d包的软件。编译时,我收到以下错误消息

[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.6
ViewManager.java:162: error: package javax.media.j3d does not exist
还有许多其他错误表明java3d包不存在或至少不可访问。但是,如果我
echo$CLASSPATH
,我会得到以下输出

.:/myhome/j3d/lib/ext/j3dcore.jar:/myhome/j3d/lib/ext/j3dutils.jar:/myhome/j3d/lib/ext/vecmath.jar

至少对我来说,这表明java3d安装正确且可访问。我正在从ant构建这个项目。为了从ant内部编译依赖JAR,我缺少了什么吗?

仅仅因为它位于shell的类路径上,并不意味着它包含在ant用于构建的类路径中。有一个
可以在ant指定的
目标内设置


确保您需要的所有JAR都在该类路径中。

您正在检查$classpath,但是
build.xml
可能(非常常见)指定了通过-cp命令行开关使用的备用类路径?这很有意义。所以解决方案是更改build.xml以引用我想要的JAR?例如,如果在构建中显示
classpath=${classpath}
,我只需要编辑该属性以包含正确的JAR?阅读
build.xml
,查看它想从何处获取Java3D的位置;可能有一个你应该设置的属性或者类似的东西。实际上没有。这是一个大文件,但是除了构建文件中的一个类路径集之外,所有的类路径集都具有classpath=${classpath}。同时,所有这些重定义类路径的方法都依赖于该目标。我继续编辑这个类路径以获得jar,构建成功。谢谢你的帮助!