如何在javac中默认强制使用StringBuffer而不是StringBuilder?
我尝试在 Linux 上使用 kvm 编译 CLDC,但出现错误
无法访问 java.lang.StringBuilder 类文件,因为找不到 java.lang.StringBuilder
无法访问声明中
return getClass().getName() + "@" + Integer.toHexString(hashCode());
:我认为这是因为它使用自己的 bootclasspath,其中包含 StringBuffer
但不包含 StringBuilder
。现在,如何强制 javac 使用 StringBuffer
而不是默认的 StringBuilder
?
我的开发环境是: Ubuntu 10.04.2 LTS + javac 1.6.0_24 (sun-java6-jdk)
I am trying to compile the CLDC with kvm on linux, I get an error
cannot access java.lang.StringBuilder class file for java.lang.StringBuilder not found
at the statement:
return getClass().getName() + "@" + Integer.toHexString(hashCode());
I think that is because this uses its own bootclasspath which contains StringBuffer
but not StringBuilder
. Now, how do I force javac to use StringBuffer
instead of default StringBuilder
?
My dev environment is:
Ubuntu 10.04.2 LTS + javac 1.6.0_24 (sun-java6-jdk)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以尝试将源和对象级别设置为 1.3 或任何没有 StringBuilder 的最后一个版本。
You could try setting the source and object levels to 1.3 or whatever versin was the last one without StringBuilder.
经过一番谷歌搜索后,我发现可以使用“-target”选项将目标 jsr 规范设置为 javac。为了解决我的问题,我必须返回 jsr14 来发出 StringBuffer 而不是 StringBuilder。
javac -target jsr14 *.java
有关此内容的更多信息: http:// twit88.com/blog/2008/08/26/java-understanding-jsr14/
After googling around a bit more, I found that one can set the target jsr specification with '-target' option to javac. To fix my problem , I had to go back to jsr14 to emit StringBuffer instead of StringBuilder.
javac -target jsr14 *.java
More about this here: http://twit88.com/blog/2008/08/26/java-understanding-jsr14/