【问题标题】:Error: javax.xml.bind.JAXBContext (Command Line)错误:javax.xml.bind.JAXBContext(命令行)
【发布时间】:2021-01-18 08:20:04
【问题描述】:

上下文:我正在从命令行执行(第三方)jar 文件。程序执行。但是当我点击程序中的一个按钮时,它会导致错误。 (使用 JDK - 15、JavaFX-15)。

错误:

java.lang.ClassNotFoundException: javax.xml.bind.JAXBContext

要从命令行执行,我使用以下命令(启动程序):

java -jar --module-path %PATH_TO_FX% --add-modules javafx.controls,javafx.fxml programName.jar

研究:基于这些链接 - Link1 Link2 Link3 以及本论坛中的其他一些链接,

我意识到我需要在命令行中包含 jaxb jar。我已经从 Maven 下载了 jaxb-api.jar 并将其保存在 c:\Jar_Files\jaxb-api.jar

我无法弄清楚我应该如何在命令行中包含 jaxb-api,以便在我单击按钮时程序不会抛出错误。

希望所面临的问题很清楚,等待输入。

【问题讨论】:

  • 这可能意味着当 JEE/CORBA 包被删除时,第三方 jar 并不意味着在 JDK11 之上运行。将它包含在类路径中是否可以解决问题?

标签: java jaxb


【解决方案1】:

jaxb-api 是不够的。您还需要 jaxb-runtime。

    <dependency>
        <groupId>org.glassfish.jaxb</groupId>
        <artifactId>jaxb-runtime</artifactId>
        <version>${jaxb-runtime.version}</version>
    </dependency>               

【讨论】:

  • 我猜你错过了我的查询。这是关于我需要如何指定在“命令行”中包含 jaxb,因为它是第 3 方 JAR 文件而不是我正在编写的程序。所以添加依赖是不可能的。
【解决方案2】:

下载其中一个 jakarta 绑定库。例如。 Maven GAVC:jakarta.xml.bind:jakarta.xml.bind-api:2.3.3

# Downloading libs from maven central
wget https://repo1.maven.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar
wget https://repo1.maven.org/maven2/jakarta/activation/jakarta.activation-api/1.2.2/jakarta.activation-api-1.2.2.jar
java -cp jakarta.xml.bind-api-2.3.3.jar;jakarta.activation-api-1.2.2.jar -jar --module-path %PATH_TO_FX% --add-modules javafx.controls,javafx.fxml,java.xml,java.xml.bind,jakarta.activation programName.jar

【讨论】:

  • 上面的方法都试过了,还是一样的错误,还有什么办法吗?
  • 尝试添加模块 java.xml.bind。更新了我的答案
  • 当我在命令行中输入上面编辑的建议时,它返回一个错误 java.lang.module.FindException: Module jakarta.activation not found
  • 是的,我预料到了这一点,并更新了我的答案。你可以不使用模块吗?会让生活更轻松
  • 我不应该使用哪些模块?如果我没有指定 javafx.controls、javafx.fxml 模块,那么程序将不会执行,说 JavaFx 运行时组件丢失。我使用了你的最新版本,即使这样也得到了错误。猜猜这里错过了什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-22
  • 2011-07-04
  • 2016-08-31
  • 1970-01-01
相关资源
最近更新 更多