17

我编写的 Ant 脚本出现以下错误。

我已经做了一些谷歌搜索,发现问题出在包含 \u 的字符串上,由于目录分隔符,在 Windows 下会发生这种情况。我将所有这些都更改为 / 但错误仍然存​​在。

我的脚本中绝对没有剩余的 \u 字符串。

java.lang.IllegalArgumentException: Malformed \uxxxx encoding.

执行propertyfile任务时出现错误,所以我检查了我要更改的文件。另一方面,这包含多个 \u 字符串。该文件与 ant 无关,它是一个 borland 项目文件 (xml),其中包含像 [someParameter]=[someValue] 这样的一行。

我只想将 [someValue] 增加 1。

所以我的问题是:

我要更改的属性文件会导致提到的错误吗

如果答案是“是”,

除了使用正则表达式任务(例如查找行、propertyregex-ing 值、math+1 值和正则表达式替换值)之外,我还能做什么

4

7 回答 7

47

我知道这个问题是不久前被问到的,但我偶然发现它没有答案,在我发现的另一个网站上(http://www.coderanch.com/t/107014/tools/Malformed-uxxxx-encoding-error)我发现由于解析的工作原理,当您应该使用“/”而不是“\”作为文件目标时,可能会发生这种情况/希望这会有所帮助。

于 2014-01-23T15:43:29.553 回答
7

在我的情况下,它是 maven 抛出这个错误。

[INFO] Building some-prj 1.0.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  0.508 s
[INFO] Finished at: 2021-08-31T08:00:30-07:00
[INFO] ------------------------------------------------------------------------
[ERROR] Malformed \uxxxx encoding.
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.

我不得不重命名 .m2 目录

mv ~/.m2 ~/m2_20210831

并重新启动 Maven 构建

mvn clean package

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  48.927 s
[INFO] Finished at: 2021-08-31T08:04:56-07:00
[INFO] ------------------------------------------------------------------------
于 2021-08-31T15:07:46.983 回答
5

使用双反斜杠(“\\”),如“abc\\user”,相当于“abc\user”,可以解决问题。

于 2018-09-19T09:52:24.807 回答
0

首先,您应该尝试使用调试标志运行 ant 脚本,以确定哪个文件在 Eclipse 中导致问题,您可以通过转到

Run > External Tools > External Tools Configurations... > Main 

并将“-d”(不带引号)添加到“参数”

然后尝试在 Eclipse 中编辑文件,因为某些编辑器(例如“写字板”)可能会弄乱文件

于 2013-07-26T07:33:32.633 回答
0

实际上我发现问题是由于 local.cfg 文件编码。如果我们使用写字板或其他非代码编辑软件创建(编辑)local.cfg 文件,它会更改文件编码。因此,当 ant 尝试加载本地配置文件时(由于 dspace-installer/build.xml 文件中的行,它需要 ASCII 字符编码的 .cfg 文件。因此,当它获取 UTF 编码文件时,会引发异常。解决方案:删除 local.cfg 文件,使用 Visual Studio 代码或其他代码编辑软件重新创建它,并编辑/编写必要的配置设置。

在此处输入图像描述

于 2019-02-21T11:51:56.000 回答
0

我发现了一个导致这个恼人错误的具体依赖项。我有

<!-- https://mvnrepository.com/artifact/org.ops4j.pax.exam/pax-exam-junit4 -->
<dependency>
    <groupId>org.ops4j.pax.exam</groupId>
    <artifactId>pax-exam-junit4</artifactId>
    <version>4.13.5</version>
    <scope>test</scope>
</dependency>

将其替换为:

<!-- https://mvnrepository.com/artifact/org.ops4j.pax.exam/pax-exam-junit4 -->
<dependency>
        <groupId>org.ops4j.pax.exam</groupId>
        <artifactId>pax-exam-junit4</artifactId>
        <version>4.1.0.redhat-1</version>
        <scope>test</scope>
</dependency>

错误消失了。

于 2022-02-24T06:43:37.567 回答
0

重命名我的存储库文件夹C:\Users\\{user-name}\\.m2并再次运行该命令对我有用。

于 2022-02-23T12:29:01.537 回答