-1

我无法连接上述任何库。这是我的项目文件夹: 在此处输入图像描述

build.gradle 文件, 在此处输入图像描述

导入错误图片 在此处输入图像描述

IDEA 的项目结构对话框 在此处输入图像描述

4

1 回答 1

1

JZY3D

如果您在https://github.com/jzy3d/jzy3d-api检查库的存储库,您将看到可以使用的不同可能的工件。既然你用#javafx 标记了你的问题,我猜你需要jzy3d-javafx.

如果您在Maven 存储库中搜索它,您将找到可用的最新版本 (1.0.2),并且还表明该工件不能从 MavenCentral 获得,但可以从jzy3D 版本库获得。

因此,在您的构建 gradle 中,您需要包含该存储库和该依赖项:

plugins {
  id 'application'
}

repositories {
    mavenCentral()
    maven {
        url "http://maven.jzy3d.org/releases"
    }
}

dependencies {
    implementation 'org.jzy3d:jzy3d-javafx:1.0.2'
}

mainClassName = "your.Main"

这是从jyz3d 存储库运行 JavaFX 演示的结果:

jzy3d

但是,我无法在 Java 11 上运行它,因为一些导致运行时异常的非法反射操作:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.jogamp.common.os.NativeLibrary$3 (file:/Users/<user>/.gradle/caches/modules-2/files-2.1/org.jogamp.gluegen/gluegen-rt/2.3.2/edc35ccfc13d4a4ad02c50d580874c18bf48bbef/gluegen-rt-2.3.2.jar) to method java.lang.ClassLoader.findLibrary(java.lang.String)
WARNING: Please consider reporting this to the maintainers of com.jogamp.common.os.NativeLibrary$3
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

所以这只适用于Java 8(这不是一个好兆头......)。

表面绘图仪

这是存储库链接:https ://github.com/ericaro/surfaceplotter ,您可以在 MavenCentral 上找到它:https ://mvnrepository.com/artifact/net.ericaro/surfaceplotter/2.0.1

但是,这是 Swing 的一个非常旧的版本,所以也许您可以设法将它包含在 SwingNode 中。

JavaFX 替代品

如果您想使用在 Java 11+ 上运行的纯 JavaFX 3D 绘制表面,您也可以使用SurfacePlotMeshFXyz

这个问题3D surface JavaFX有一个关于如何使用它的示例。

你的构建应该是这样的:

plugins {
    id 'application'
    id 'org.openjfx.javafxplugin' version '0.0.8'
}

repositories {
    mavenCentral()
    maven {
        url = "http://maven.jzy3d.org/releases"
    }
}

dependencies {
    implementation 'org.fxyz3d:fxyz3d:0.5.2'
}

javafx {
    modules = [ 'javafx.controls' ]
}

mainClassName = 'your.Main'

FXyz3D

于 2020-01-01T22:04:13.847 回答