【问题标题】:Missing Java3D on tomcat cartridgeTomcat 墨盒上缺少 Java3D
【发布时间】:2014-03-11 09:21:57
【问题描述】:

我有带 tomcat 墨盒的小齿轮。当我尝试执行使用 Java3D 生成图像的战争时,出现以下异常:

Caused by: java.lang.ClassNotFoundException: javax.media.j3d.Node

首先我想我尝试在类路径中添加 Java3D,我已将其添加到我的 pom.xml:

<dependency>
    <groupId>java3d</groupId>
    <artifactId>j3d-core-utils</artifactId>
    <version>1.3.1</version>
    <scope>compile</scope>
</dependency>

这在最终战争中添加了以下工件:

[INFO] +- java3d:j3d-core-utils:jar:1.3.1:compile
[INFO] |  +- java3d:vecmath:jar:1.3.1:compile
[INFO] |  \- java3d:j3d-core:jar:1.3.1:compile

当我在引发异常后部署调整后的战争时:

Caused by: java.lang.UnsatisfiedLinkError: no J3D in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886)

据我了解异常,它表示 java.library.path 中没有本机 Java3D 库。所以我从建议的链接安装了 Java3D,我还更新了 j3dcore.jar、j3dutils.jar 和 vecmath.jar。 catalina.sh 也已更新:

export LD_LIBRARY_PATH=/var/lib/openshift/<my-application-id>/app-root/data/j3d-1_5_2-linux-amd64/lib/amd64

我想没有 X11 服务器可以使用,因为 Java3D 必须在无头模式下运行。它可以像这样在 catalina.sh 中设置:

JAVA_OPTS=${JAVA_OPTS}" -Djava.awt.headless=true"

现在似乎找到了所有 java3D 类和 *.so 库。现在还有一个问题:

java.awt.HeadlessException
at sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(HeadlessGraphicsEnvironment.java:64)

问题是Java3D 类Canvas3D 不能在无头模式下工作。唯一的方法可能是连接到一些带屏幕的 X11 服务器。可以通过 export DISPLAY=:0.0

来完成

据我测试,似乎没有 X11 服务器,提供 Java3D 可以连接的屏幕。因此,无法在 OpenShift 平台上使用 tomcat 卡盒运行 Java3D。

感谢您的帮助。

【问题讨论】:

  • 我正在与 devops 检查是否已安装该软件包。

标签: openshift java-3d


【解决方案1】:

您是否尝试将其添加到您的 pom.xml 以通过 maven 进行安装?或者手动将 .jar 文件添加到您的项目中...http://mvnrepository.com/artifact/java3d/j3d-core-utils/1.3.1

您可能需要的不仅仅是核心包。

由于您正在部署一个war文件,而不是使用maven,我认为您需要下载jar文件并将它们作为库嵌入到您的war文件中并使用它们。

你也可以看看这篇文章:https://www.openshift.com/kb/kb-e1087-how-to-include-libraries-jar-files-in-your-java-application-without-using-maven

看起来还有一个 .so 文件,您需要包含类似 -Djava.library.path 之类的内容

这是 java.net http://download.java.net/media/java3d/builds/release/1.5.2/j3d-1_5_2-linux-amd64.zip 上带有 jars 和 .so 文件的文件

与开发运营团队交谈,似乎没有在服务器上安装软件包。

【讨论】:

    猜你喜欢
    • 2014-11-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-08
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多