我有一个如此定义的ANT任务:
<javac source="1.5" target="1.5" srcdir="${src.dir}" destdir="${classes.dir}" deprecation="on" debug="on" classpathref="classpath" fork="true" memoryMaximumSize="512m" encoding="UTF-8">
<include name="${app.directory}/**/*.java"/>
</javac>
这很好用,但是当我的名字中有特殊字符的类时,会出现以下错误:
[iosession] Compiling 131 source files to /C24/PUB/io-stds/trunk/standards/GSIT/build/test/deployment/build/classes
[iosession] javac: file not found: /C24/PUB/io-stds/trunk/standards/GSIT/build/test/deployment/src/java/biz/c24/io/minos/AléaChiffréClass.java
[iosession] Usage: javac <options> <source files>
[iosession] use -help for a list of possible options
[iosession] Target compile finished
[iosession]
[iosession] Building unsuccessful 2 seconds
当我删除“fork = true”时,它可以工作,但它忽略了“memoryMaximumSize”设置。我也尝试过嵌套方法,但无济于事。
有什么想法吗?
答案 0 :(得分:1)
这可能不是你期望的答案,但我的建议是从方法和类的名称中删除所有非ascii字母。我也讲法语,我从未见过任何公司,即使在法国也使用法语作为其开发语言,在类名和方法中接受重音字母。这不是一个好习惯,仅仅因为对于非法语开发人员来说,如果没有键盘上的重音符号,就很难使用这些类和方法。
如果你使用一个好的IDE,它应该允许你轻松地重构你的代码。
答案 1 :(得分:0)
Apache确认编码属性仅适用于文件内容而不适用于文件名。我只在需要时恢复使用fork并保持编码=“UTF-8”。