无法解析java中的DatatypeConverter类

Isa*_*oro 8 java encryption performance types

我有以下代码来生成 SHA-1 哈希值。

@Override
    public String generateHash(String plainTextPassword) {

        String hashedPassword = "";
        try {
            MessageDigest msdDigest = MessageDigest.getInstance("SHA-1");
            msdDigest.update(plainTextPassword.getBytes("UTF-8"), 0, plainTextPassword.length());
            hashedPassword = DatatypeConverter.printHexBinary(msdDigest.digest());
        } catch (Exception e) {
            System.out.println("HASHING FAILED");
        }
        return hashedPassword;
    }
Run Code Online (Sandbox Code Playgroud)

在我的本地计算机上,使用 DatatypeConverter 类没有问题。包是javax.xml.bind.DatatypeConverter;当我将项目转移到运行 Ubuntu 的 Linux 计算机时,DatatypeConverter 类未解析。

Pie*_*e C 17

从 Java 9 开始,该模块javax.xml.bind已被置于 jdk 之外。

此外,作为向 Eclipse 基金会捐赠 Java EE 的一部分,其新名称为 Jakarta EE,相应的命名空间也更名为 Jakarta。所以你必须进行以下修改:

将依赖项添加到您的项目中:

使用 Maven,将以下内容添加到您的pom.xml

<dependency>
    <groupId>jakarta.xml.bind</groupId>
    <artifactId>jakarta.xml.bind-api</artifactId>
    <version>3.0.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

使用 Gradle,将以下内容添加到您的build.gradle

implementation group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api-parent', version: '3.0.0', ext: 'pom'
Run Code Online (Sandbox Code Playgroud)

并且,在使用依赖项的 java 代码中,将导入更改为:

implementation group: 'jakarta.xml.bind', name: 'jakarta.xml.bind-api-parent', version: '3.0.0', ext: 'pom'
Run Code Online (Sandbox Code Playgroud)

  • Kotlin gradle 导入语句:`implementation 'jakarta.xml.bind:jakarta.xml.bind-api:3.0.1'` (2认同)