Grails:向message.properties添加新属性时出现Native2ascii错误

时间:2012-06-18 11:29:56

标签: grails properties internationalization sts-springsourcetoolsuite

我在运行时在grails应用程序中向message.properties文件添加新属性时出现了一个奇怪的错误。当我通过命令行重新启动应用程序,或重新启动STS时,此错误消失。我在2.0.1版本上,直到一周前,我能够在运行时向message.properties文件中添加新属性。这是错误的堆栈跟踪

| Error 2012-06-18 16:54:58,702 [Thread-38] ERROR plugins.AbstractGrailsPluginManager  - Plugin [i18n:2.0.1] could not reload changes to file [/home/project/grails-app/i18n/messages.properties]: Error starting Sun's native2ascii: 
Message: Error starting Sun's native2ascii: 

有什么想法吗?

7 个答案:

答案 0 :(得分:17)

cd到jdk路径

cp lib / tools.jar jre / lib / ext / tools.jar

它解决了这个问题。

注意:要获得正确的jdk路径, 检查GGTS - > Windows - >偏好 - > Java - >已安装的JRE - > JREs Home Path

答案 1 :(得分:10)

您应该使用JDK而不是JRE。

此外,如果您不需要native2ascii(您可能不需要),请在BuildConfig.groovy中使用:grails.enable.native2ascii = false

答案 2 :(得分:4)

非常令人沮丧的错误。

在我执行上述线程中的所有步骤后,grails应用程序仍然没有看到tools.jar ...

哎呀!

对于在GGTS中遇到此问题的任何人,当指向1.7 jdk(设置jre时)持续 之后 时,你必须做以下内容:

  1. 在GGTS首选项面板的“已安装的JRE”中的“JRE定义”面板中选择正确的jdk(1.7)。
  2. 从底部“JRE系统库”的JRE定义窗口面板中查看jdk填充的jar。
  3. 检查tools.jar(我的dID没有显示为在jdk lib中识别,或者在我尝试'上面的'zawmn83的帖子后)/ lib / ext。
  4. 如果tools.jar未在jdk中显示为已识别,请单击“添加外部JAR ...”按钮,找到它,添加它。
  5. 这完全解决了我的问题 - 感谢上帝!!!!

    P.S。我还必须在我的.bash_profile中正确地将我的JAVA_HOME设置为我的1.7 jdk,但是,作为解决方案的一部分,这已经在这里被称为。

    感谢大家为此做出贡献 - 这个错误导致我脑损伤,同时今天摆弄它,上面的建议让我99%的方式在那里!

答案 3 :(得分:1)

我有一个类似的问题,最后我

  1. 删除了项目的调试配置
  2. 删除了项目(但不是文件)
  3. 删除了.settings目录
  4. 从项目
  5. 中删除了.classpath和.project文件
  6. 在工作区
  7. 中创建了一个名称相同的新常规项目
  8. 重新创建调试 - >以Run-App运行
  9. 希望这有帮助

答案 4 :(得分:1)

当我在Ubuntu上与java 7并行安装java 8但没有使用update-alternatives正确配置它时,发生了这种情况。具体来说,JAVA_HOME设置不正确。

答案 5 :(得分:1)

从linux下的命令行编译Grails 2时出现了类似的错误。

Error packaging application: Error occurred processing message bundles: Error starting Sun's native2ascii:
...
Caused by: : Error starting Sun's native2ascii: 
...
Caused by: java.lang.ClassNotFoundException: sun.tools.native2ascii.Main`

我通过将JAVA_HOME设置为JDK来解决它,如上所述,类似于

JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.161.x86_64

而不是:

JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64

还在$JAVA_HOME/bin变量

中包含PATH

答案 6 :(得分:0)

在 linux 上,运行 grails war 命令,它解决了这个问题

 cp /usr/lib/jvm/java-1.8.0-openjdk/lib/tools.jar /usr/lib/jvm/java-1.8.0-openjdk/jre/lib/ext/