gpt4 book ai didi

java - 卡在 javafx.graphics 上不会将 com.sun.javafx.sg.prism 导出到未命名模块

转载 作者:行者123 更新时间:2023-12-04 13:05:22 28 4
gpt4 key购买 nike

几天来我一直被这个错误所困扰。我已经用谷歌搜索了它并尝试了至少十几种不同形式的不同提议的解决方案......

我的项目运行良好,直到我尝试使用名为 MonacoFX 的特定库,根据 GitHub 页面,它是用 Java 13 开发的(我在这个项目中使用 Java 16.0.1)。该库的文档非常简单,您可以像对待大多数库一样实例化该库,然后您只需使用它即可。但是,一旦我尝试实例化它,我就会在运行时收到此错误:

Exception in thread "JavaFX Application Thread"
java.lang.IllegalAccessError: superclass access check failed:
class com.sun.javafx.sg.prism.web.NGWebView (in unnamed module @0x1937acaf)
cannot access class com.sun.javafx.sg.prism.NGGroup (in module javafx.graphics)
because module javafx.graphics does not export
com.sun.javafx.sg.prism to unnamed module @0x1937acaf
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
at eu.mihosoft.monacofx@0.0.7/eu.mihosoft.monacofx.MonacoFX.<init>(MonacoFX.java:49)
at com.dustinredmond.newgistfx/com.dustinredmond.newgistfx.data.GistFile.<init>(GistFile.java:28)
at com.dustinredmond.newgistfx/com.dustinredmond.newgistfx.data.GistObject.process(GistObject.java:113)
at com.dustinredmond.newgistfx/com.dustinredmond.newgistfx.data.GistObject.<init>(GistObject.java:27)
at com.dustinredmond.newgistfx/com.dustinredmond.newgistfx.github.GitHubApi.setGitHub(GitHubApi.java:31)
at com.dustinredmond.newgistfx/com.dustinredmond.newgistfx.ui.LoginWindowController.authenticate(LoginWindowController.java:39)
at com.dustinredmond.newgistfx/com.dustinredmond.newgistfx.ui.LoginWindow.lambda$new$1(LoginWindow.java:57)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8889)
at javafx.controls/javafx.scene.control.Button.fire(Button.java:203)
at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:208)
at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3856)
at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1851)
at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2584)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:409)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:299)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:447)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:412)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:446)
at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
at javafx.graphics/com.sun.glass.ui.mac.MacView.notifyMouse(MacView.java:127)

看起来库的开发人员已经有一段时间没有在该 GitHub 页面上活跃了,尽管我确实创建了一个问题。

我已经尝试过他们说使用命令行参数的解决方案,我的看起来像这样:

--module-path /Library/Java/JavaVirtualMachines/jdk-16.0.1.jdk/Contents/Home/lib
--add-modules javafx.controls,javafx.fxml,javafx.web,javafx.graphics,javafx.media

我试过使用单独的 Launcher 类:

public class Launcher {
public static void main(String[] args) {
Main.main(args);
}
}

没有任何工作,错误发生在我尝试实例化库的那一刻。

所以我正在寻求任何人可能对这个问题有任何见解或知识......或者......如果有人知道一个提供语言感知代码样式编辑的优秀 JavaFX 库,我会非常感兴趣那个。

这是我的 POM 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.dustinredmond</groupId>
<artifactId>NewGistFX</artifactId>
<version>1.0-SNAPSHOT</version>
<name>NewGistFX</name>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.version>5.7.1</junit.version>
</properties>

<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>16</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>16</version>
</dependency>
<dependency>
<groupId>org.controlsfx</groupId>
<artifactId>controlsfx</artifactId>
<version>11.1.0</version>
</dependency>
<dependency>
<groupId>net.synedra</groupId>
<artifactId>validatorfx</artifactId>
<version>0.1.13</version>
<exclusions>
<exclusion>
<groupId>org.openjfx</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.eclipse.mylyn.github</groupId>
<artifactId>org.eclipse.egit.github.core</artifactId>
<version>2.1.5</version>
</dependency>
<dependency>
<groupId>com.fifesoft</groupId>
<artifactId>rsyntaxtextarea</artifactId>
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.dustinredmond.fxtrayicon</groupId>
<artifactId>FXTrayIcon</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>org.kohsuke</groupId>
<artifactId>github-api</artifactId>
<version>1.133</version>
</dependency>
<dependency>
<groupId>com.squareup.okio</groupId>
<artifactId>okio</artifactId>
<version>2.10.0</version>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jdk8</artifactId>
<version>1.5.31</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.2</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-crypto</artifactId>
<version>5.5.3</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
<dependency>
<groupId>eu.mihosoft.monacofx</groupId>
<artifactId>monacofx</artifactId>
<version>0.0.7</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>16</source>
<target>16</target>
</configuration>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.7</version>
<executions>
<execution>
<!-- Default configuration for running with: mvn clean javafx:run -->
<id>default-cli</id>
<configuration>
<mainClass>com.dustinredmond.newgistfx/com.dustinredmond.newgistfx.Main</mainClass>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

这是我的模块信息文件:

module com.dustinredmond.newgistfx {
requires javafx.controls;
requires javafx.fxml;

requires org.controlsfx.controls;
requires validatorfx;
requires javafx.graphics;

requires java.prefs;
requires org.apache.commons.codec;
requires github.api;
requires org.apache.commons.io;
requires rsyntaxtextarea;
requires java.desktop;
requires FXTrayIcon;
requires org.eclipse.egit.github.core;
requires okhttp3;
requires eu.mihosoft.monacofx;


exports com.dustinredmond.newgistfx.ui;


opens com.dustinredmond.newgistfx to javafx.base;
opens com.dustinredmond.newgistfx.data to javafx.base;
}

我很感激任何人可以提供的任何帮助。

谢谢

最佳答案

如何调试依赖关系

在您的项目中包含 maven 依赖插件。

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.2.0</version>
</plugin>
</plugins>
</build>

在你的项目上运行mvn dependency:tree

[INFO] --- maven-dependency-plugin:3.2.0:tree (default-cli) @ NewGistFX ---
[INFO] com.dustinredmond:NewGistFX:jar:1.0-SNAPSHOT
[INFO] +- org.openjfx:javafx-controls:jar:16:compile
[INFO] | +- org.openjfx:javafx-controls:jar:win:16:compile
[INFO] | \- org.openjfx:javafx-graphics:jar:16:compile
[INFO] | \- org.openjfx:javafx-graphics:jar:win:16:compile
[INFO] +- org.openjfx:javafx-fxml:jar:16:compile
[INFO] | \- org.openjfx:javafx-fxml:jar:win:16:compile
[INFO] +- org.controlsfx:controlsfx:jar:11.1.0:compile
[INFO] +- net.synedra:validatorfx:jar:0.1.13:compile
[INFO] +- org.junit.jupiter:junit-jupiter-api:jar:5.7.1:test
[INFO] | +- org.apiguardian:apiguardian-api:jar:1.1.0:test
[INFO] | +- org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] | \- org.junit.platform:junit-platform-commons:jar:1.7.1:test
[INFO] +- org.junit.jupiter:junit-jupiter-engine:jar:5.7.1:test
[INFO] | \- org.junit.platform:junit-platform-engine:jar:1.7.1:test
[INFO] +- org.eclipse.mylyn.github:org.eclipse.egit.github.core:jar:2.1.5:compile
[INFO] | \- com.google.code.gson:gson:jar:2.2.2:compile
[INFO] +- com.fifesoft:rsyntaxtextarea:jar:3.1.3:compile
[INFO] +- junit:junit:jar:4.13.1:test
[INFO] | \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] +- com.dustinredmond.fxtrayicon:FXTrayIcon:jar:3.1.1:compile
[INFO] +- org.kohsuke:github-api:jar:1.133:compile
[INFO] | +- org.apache.commons:commons-lang3:jar:3.9:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.12.5:compile
[INFO] | | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.12.5:compile
[INFO] | | \- com.fasterxml.jackson.core:jackson-core:jar:2.12.5:compile
[INFO] | \- commons-io:commons-io:jar:2.8.0:compile
[INFO] +- com.squareup.okio:okio:jar:2.10.0:compile
[INFO] | +- org.jetbrains.kotlin:kotlin-stdlib:jar:1.4.20:compile
[INFO] | | \- org.jetbrains:annotations:jar:13.0:compile
[INFO] | \- org.jetbrains.kotlin:kotlin-stdlib-common:jar:1.4.20:compile
[INFO] +- org.jetbrains.kotlin:kotlin-stdlib-jdk8:jar:1.5.31:compile
[INFO] | \- org.jetbrains.kotlin:kotlin-stdlib-jdk7:jar:1.5.31:compile
[INFO] +- com.squareup.okhttp3:okhttp:jar:4.9.2:compile
[INFO] +- org.springframework.security:spring-security-crypto:jar:5.5.3:compile
[INFO] +- commons-codec:commons-codec:jar:1.15:compile
[INFO] \- eu.mihosoft.monacofx:monacofx:jar:0.0.7:compile
[INFO] +- org.openjfx:javafx-base:jar:12.0.1:compile
[INFO] | \- org.openjfx:javafx-base:jar:win:12.0.1:compile
[INFO] +- org.openjfx:javafx-web:jar:12.0.1:runtime
[INFO] | \- org.openjfx:javafx-web:jar:win:12.0.1:runtime
[INFO] \- org.openjfx:javafx-media:jar:12.0.1:runtime
[INFO] \- org.openjfx:javafx-media:jar:win:12.0.1:runtime

您的项目存在问题以及如何解决这些问题

请注意,您的项目使用的是 javafx-controls/javafx-graphics 16,monacofx 依赖于 javafx-base/javafx-web/javafx-media 12.0.1。

JavaFX 不支持混合 JavaFX 模块版本,因此会中断。

不要这样做。

修复 pom.xml 中的版本控制,以便所有 JavaFX 模块都是相同的版本。

此外,您正在定义一个 module-info.java 文件,您需要将所需的依赖项添加到您的 module-info 才能使其工作。所以修复它们(参见下面我的示例,注意它需要 javafx.web 和 eu.mihosoft.monacofx)。

不要通过启动器 hack 来创建 Launcher.java 文件。 JavaFX 的架构不适合以这种方式运行,因此不受支持。

如果您要从命令行运行,则需要指定您正在使用的所有模块的模块路径,而不仅仅是 JDK 模块。事实上,您不需要将 JDK 模块显式添加到模块路径,它们将自动添加,因为它们是您正在使用的 jdk 镜像的隐含部分。

您正在使用 Maven,因此所有需要放置在模块路径上的非 jdk 依赖项都在您的 Maven 存储库中,您可以从那里获取它们。如果您使用像 Idea 这样的 IDE 并且已经设法让应用程序在 IDE 中运行(不使用 JavaFX maven 插件来运行它),那么请查看 IDE 用于运行应用程序的命令行,特别是模块路径(或 -p) 选项,并从那里复制所有内容,并在尝试从命令提示符运行时使用相同的内容。

或者,使用 jlink/jdeps 和可能的 jpackage 创建合适的运行时镜像(google it),并使用它来执行您的应用。

MonacoFX 没有 module-info.java 文件,因此在开发人员使用 module-info.java 文件创建新包之前,您将无法使用 jlink 来包含它。如果您愿意,您可以为项目提交功能请求,让他们这样做。

也许还有另一个功能要求他们不需要 JavaFX 12 包作为依赖项

例如,在 Maven 构建中,Monaco 项目中的那些依赖项可以标记为已提供,例如,Monaco 项目的文档可以指出,为了使其正常工作,某些 JavaFX 模块必须位于模块路径上。

示例应用程序

monaco

这只是使用 sample app from MonacoFX

package com.example.monacotest;

import eu.mihosoft.monacofx.MonacoFX;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class MonacoTestApp extends Application {

public static void main(String[] args) {
launch(args);
}

@Override
public void start(Stage primaryStage) throws Exception {
// create a new monaco editor node
MonacoFX monacoFX = new MonacoFX();
StackPane root = new StackPane(monacoFX);

// set initial text
monacoFX.getEditor().getDocument().setText(
"""
#include <stdio.h>
int main() {
// printf() displays the string inside quotation
printf("Hello, World!");
return 0;
}
"""
);

// use a predefined language like 'c'
monacoFX.getEditor().setCurrentLanguage("c");
monacoFX.getEditor().setCurrentTheme("vs-dark");

// the usual scene & stage setup
Scene scene = new Scene(root, 800,600);
primaryStage.setTitle("MonacoFX Demo (running on JDK " + System.getProperty("java.version") + ")");
primaryStage.setScene(scene);
primaryStage.show();
}
}

module-info.java

我只需要使 Monaco 能够通过测试的东西。您可以将所需的其余内容添加到您的项目中。

必须需要javafx.web,否则您将收到问题中显示的错误。

module com.example.monacotest {
requires javafx.web;
requires eu.mihosoft.monacofx;

exports com.example.monacotest;
}

pom.xml

我们排除了 monacofx 的 JavaFX 依赖项,并直接在我们的项目中定义了所有必要的 JavaFX 依赖项,使用正确的版本

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.example.monacotest</groupId>
<artifactId>MonacoTestApp</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>17</java.version>
<javafx.version>17.0.1</javafx.version>
</properties>

<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-web</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>eu.mihosoft.monacofx</groupId>
<artifactId>monacofx</artifactId>
<version>0.0.7</version>
<exclusions>
<exclusion>
<groupId>org.openjfx</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

正确的依赖树:

[INFO] --- maven-dependency-plugin:3.2.0:tree (default-cli) @ MonacoTestApp ---
[INFO] com.example.monacotest:MonacoTestApp:jar:1.0-SNAPSHOT
[INFO] +- org.openjfx:javafx-web:jar:17.0.1:compile
[INFO] | +- org.openjfx:javafx-web:jar:win:17.0.1:compile
[INFO] | +- org.openjfx:javafx-controls:jar:17.0.1:compile
[INFO] | | +- org.openjfx:javafx-controls:jar:win:17.0.1:compile
[INFO] | | \- org.openjfx:javafx-graphics:jar:17.0.1:compile
[INFO] | | +- org.openjfx:javafx-graphics:jar:win:17.0.1:compile
[INFO] | | \- org.openjfx:javafx-base:jar:17.0.1:compile
[INFO] | | \- org.openjfx:javafx-base:jar:win:17.0.1:compile
[INFO] | \- org.openjfx:javafx-media:jar:17.0.1:compile
[INFO] | \- org.openjfx:javafx-media:jar:win:17.0.1:compile
[INFO] \- eu.mihosoft.monacofx:monacofx:jar:0.0.7:compile

关于java - 卡在 javafx.graphics 上不会将 com.sun.javafx.sg.prism 导出到未命名模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69779045/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com