当前位置: 首页 > 知识库问答 >
问题:

JavaFX14如何导出未导出的包?

闻人举
2023-03-14

该应用程序类似于加载css文件的主题查看器。

我想要捕获css“StyleManager”的警告(错误),这样我就可以在此解决方案中向用户发出警告

    StyleManager.errorsProperty().addListener((ListChangeListener<? super CssError>) c -> {
      while (c.next()) {
        for (CssError error : c.getAddedSubList()) {
          // maybe you want to check for specific errors here
          System.out.println(error.getMessage());
        }
      }
    });

问题是com.sun.javafx.css.StyleManager没有导出,所以我得到错误:

(package com.sun.javafx.css is declared in module javafx.graphics, which does not export it to module com.johntor.app)

我试着添加

--add-exports javafx.graphics/com.sun.javafx.css=com.johntor.app

没有任何运气!

在此之前,应用程序运行良好!!!

   <?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
       <modelVersion>4.0.0</modelVersion>
       <groupId>com.johntor</groupId>
       <artifactId>ThemeViewer3</artifactId>
       <version>1.0.0</version>
       <packaging>jar</packaging>
       <name>ThemeViewer3</name>
       <url>http://www.greek-developers.com</url>
       <properties>
           <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
           <maven.compiler.source>14</maven.compiler.source>
           <maven.compiler.target>14</maven.compiler.target>
       </properties>
       <dependencies>
           <dependency>
               <groupId>org.openjfx</groupId>
               <artifactId>javafx-controls</artifactId>
               <version>14.0.1</version>
           </dependency>
           <dependency>
               <groupId>org.openjfx</groupId>
               <artifactId>javafx-fxml</artifactId>
               <version>14.0.1</version>
           </dependency>
           <dependency>
               <groupId>org.openjfx</groupId>
               <artifactId>javafx-graphics</artifactId>
               <version>14.0.1</version>
           </dependency>
           <dependency>
               <groupId>org.openjfx</groupId>
               <artifactId>javafx-web</artifactId>
               <version>14.0.1</version>
           </dependency>
           <dependency>
               <groupId>org.openjfx</groupId>
               <artifactId>javafx-base</artifactId>
               <version>14.0.1</version>
           </dependency>
           <dependency>
               <groupId>org.openjfx</groupId>
               <artifactId>javafx-media</artifactId>
               <version>14.0.1</version>
           </dependency>
       </dependencies>
       <build>
           <plugins>
               <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-compiler-plugin</artifactId>
                   <version>3.8.1</version>
                   <configuration>
                       <release>14</release>
                       <mainClass>com.johntor.App</mainClass>
                       <compilerArgs>
                           <arg>--add-exports=javafx.graphics/com.sun.javafx.css=com.johntor.app</arg>
                       </compilerArgs>
                   </configuration>
               </plugin>
               <plugin>
                   <groupId>org.openjfx</groupId>
                   <artifactId>javafx-maven-plugin</artifactId>
                   <version>0.0.4</version>
                   <configuration>
                       <compilerArgs>
                           <arg>--add-exports</arg>
                           <arg>javafx.graphics/com.sun.javafx.css=com.johntor.app</arg>
                       </compilerArgs>
                       <mainClass>com.johntor.app.App</mainClass>
                       <options>
                           <option>--add-opens</option>
                           <option>javafx.controls/javafx.scene.control=com.johntor.app</option>
                           <option>--add-exports</option>
                           <option>javafx.graphics/com.sun.javafx.css=com.johntor.app</option>    
                           <option>--add-exports</option>
                           <option>javafx.graphics/com.sun.javafx.css=ALL-UNNAMED</option>                    
                       </options>
                   </configuration>
                   <executions>
                       <execution>
                           <id>default-cli</id>
                           <configuration>
                               <mainClass>com.johntor.app.App</mainClass>
                               <options>
                                   <option>--add-opens</option>
                                   <option>javafx.controls/javafx.scene.control=com.johntor.app</option>
                                   <option>--add-exports</option>
                                   <option>javafx.graphics/com.sun.javafx.css=com.johntor.app</option> 
                               </options>
                               <stripDebug>true</stripDebug>
                               <compress>2</compress>
                               <noHeaderFiles>true</noHeaderFiles>
                               <noManPages>true</noManPages>
                               <launcher>${project.artifactId}</launcher>
                               <jlinkImageName>../Deploy</jlinkImageName>
                               <!--<jlinkZipName>${project.artifactId}</jlinkZipName>-->
                           </configuration>
                       </execution>
                       <execution>
                           <id>debug</id>
                           <configuration>
                               <options>
                                   <option>-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=localhost:8000</option>
                               </options>
                           </configuration>
                       </execution>
                       <execution>
                           <id>ide-debug</id>
                           <configuration>
                               <options>
                                   <option>-agentlib:jdwp=transport=dt_socket,server=n,address=${jpda.address}</option>
                               </options>
                           </configuration>
                       </execution>
                       <execution>
                           <!--Configuration for automatic IDE profiling-->
                           <id>ide-profile</id>
                           <configuration>
                               <options>
                                   <option>${profiler.jvmargs.arg1}</option>
                                   <option>${profiler.jvmargs.arg2}</option>
                                   <option>${profiler.jvmargs.arg3}</option>
                                   <option>${profiler.jvmargs.arg4}</option>
                                   <option>${profiler.jvmargs.arg5}</option>
                               </options>
                           </configuration>
                       </execution>
                   </executions>
               </plugin>
           </plugins>
                   <resources>
               <resource>
                   <directory>src/main/java</directory>
                   <includes>
                       <include>**/*.fxml</include>
                       <include>**/*.css</include>
                       <include>**/*.properties</include>
                   </includes>
               </resource>
               <resource>
                   <directory>src/main/resources</directory>
                   <includes>
                       <include>**/*.xml</include>
                       <include>**/*.png</include>
                       <include>**/*.css</include>
                       <include>**/*.properties</include>
                   </includes>
               </resource>
               <resource>
                   <directory>.</directory>
                   <includes>
                       <include>readme.txt</include>
                   </includes>
               </resource>
           </resources>
       </build>
   </project>

J!

共有1个答案

谢烨烨
2023-03-14

下面是我的pom,它适用于一个非常简单的javafx maven项目。

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    <groupId>org.example</groupId>
    <artifactId>MavenFxied</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-controls</artifactId>
            <version>14.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-graphics</artifactId>
            <version>14.0.1</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <release>11</release>
                    <compilerArgs>
                        <arg>--add-exports=javafx.graphics/com.sun.javafx.css=mavenfxied</arg>
                    </compilerArgs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.openjfx</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>0.0.4</version>
                <configuration>
                    <mainClass>example.Main</mainClass>
                    <options>
                        <option>--add-exports</option>
                        <option>javafx.graphics/com.sun.javafx.css=mavenfxied</option>
                        <option>--add-opens</option>
                        <option>javafx.graphics/com.sun.javafx.css=mavenfxied</option>
                    </options>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

我能够使用mvn package构建并使用mvn javafx:run运行项目。

我的模块名为'mavenfxied',我的包名为'example'。

 类似资料:
  • 问题内容: 我是virtualenv的新手,但是我正在编写django应用程序,最后我将不得不以某种方式进行部署。 因此,假设我的应用程序在安装了所有必需库的本地virtualenv上运行。我现在想做的是运行某种脚本,它将使用我的virtualenv,检查其中安装了什么,并生成一个脚本,将所有这些库安装在另一台计算机上的最新virtualenv上。如何做到这一点?请帮忙。 问题答案: 您无需复制粘

  • 如何通过查询导入和导出.sql文件。在jdbc中使用的注意事项

  • 问题内容: 如果我将类型定义为: 那我该如何克隆这种类型的对象呢?如果我做一个简单的任务: 然后,对受影响的两个对象所做的任何更改。由于未导出,因此即使使用反射提取,也无法显式复制。 我目前在类型本身的包中提供一个方法。但这对其他软件包中的类似类型没有帮助。还有另一种方法吗? 问题答案: 你不能 这就是未导出字段的意义:只有声明包才能修改它们。 请注意,如果在另一个包中声明了该类型,则您甚至无法编

  • 可以将本地文档导入到幕布中,也可以将幕布中的文档导出到本地,支持Word、PDF、HTML、OPML、FreeMind等多种格式。 导入 在文档列表主页面点击「新建」,可以选择导入OPML文件(.opml格式)或者FreeMind文件(.mm格式)。 导出 在文档编辑页面点击右上角「更多」选项: 导出/下载:将该文档导出到本地,支持Word、PDF、HTML、OPML格式; 打印:使用打印机打印该

  • 导出向导 让你从表、视图或查询结果导出数据到任何现有的格式。你可以保存设置成设置文件用作设置计划。注意:Navicat Essentials 只支持导出基于文本的文件,例如 TXT、CSV、HTML、XML 和 JSON 文件。 要打开导出向导,从对象列表工具栏点击 导出向导。 设置导出文件格式(步骤 1) 为目标文件选择一个有效的导出格式。 注意: Excel 文件格式是根据你的计算机里安装的

  • 用例很简单:我只想导出一个名称与导入时相同的对象。 例如: 但这并不起作用。我必须写: 但这很奇怪。正确的方法是什么? 更新: 感谢帮助和参考。我用许多线索解决了我的问题。下面给大家分享一些我常见的案例和解决方法。