`
VerRan
  • 浏览: 456911 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

ResourseBundle学习笔记“Canot find bundle for base name ”

    博客分类:
  • JAVA
阅读更多

1.初步学习

最近在学习ResourseBundle时遇到了“Can't find bundle for base name ”这个错误搞了很久才解决了。原因就是类路径问题要将属性文件放在类路径中!百度里很多都是教程但没有涉及到解决方法! 2.中文显示:

测试文件

java 代码
  1. package com.lht.ResourseBundleStudy;   
  2.   
  3. import java.util.ResourceBundle;   
  4.   
  5. public class ResourseBundleDemo {   
  6.      public static void main(String[] args) {       
  7.      ResourceBundle resource = ResourceBundle.getBundle("test");    
  8.      System.out.print(resource.getString("msg0") + "!");     
  9.      System.out.println(resource.getString("msg1") + "!");    }   
  10.   
  11. }   

 

test.properties

 

msg0="Hello World"
msg1="da jia hao"

开始自己测试的时候:将属性文件放在bin/下也试过也不行无赖中就在google中搜索了一下终于在sun的java论坛

(http://forum.java.sun.com/thread.jspa?threadID=660477&messageID=4231534)中找到了线索下面是帖子的内容:

I've solved the problem the best way possible. Basically what i've done is added a new class folder named config to the project home dir. Then i added this classfolder to the classpath in project properties. After doing all of this you only need to reference the properties file by "Email".

Hope this helps anyone else who is having similiar problems.

基本意思就是在src下建立classes(名字无所谓)文件夹将属性文件存放在下面,然后将这个文件夹加入类路径中!运行就可以了:

加入类路径的方法:你的工程文件夹->properties->选择Libraries选项卡->Add Class Folder将刚才建立的文件夹加入就可以了!

结果如下:

"Hello World"!"da jia hao";!

 2.中文显示

在classes目录下建立message_CH.properties内容如下:

ms0="大家好"

同样用上面的测试文件!

结果如下:"?ó????"!

乱码怎么回事啊!

在百度里搜索后找到了答案有以为网友写的很清楚:http://gostar.bokee.com/3885062.html

下面引用如下:

 原理

Property文件中,使用的编码方式根据机器本身的设置可能是GBK或者UTF-8。而在Java程序中读取Property文件的时候使用的是Unicode编码方式,这种编码方式不同会导致中文乱码。因此需要将Property文件中的中文字符转化成Unicode编码方式才能正常显示中文。

 解决办法

Java提供了专门的工具对Property文件进行Unicode转化,这种工具就是native2ascii,它在JDK安装环境的bin目录下。

native2ascii 工具将带有本机编码字符(非拉丁 1 和非单一码字符)的文件转换成带有Unicode编码字符的文件。

假设需要转化的属性文件为:D:\src\resources.properties(含有中文字符)

转化后的属性文件为:D:\classes\resources.properties(中文字符统一转化为Unicode)

那么使用如下命令
JAVA_HOME\bin\native2ascii -encoding GBK D:\src\resources.properties D:\classes\resources.properties

就能将含有中文字符的属性文件转化成单一Unicode编码方式的属性文件。中文乱码自然会被解决。

通过上面的方法我将生成的文件打开一看内容如下:

 ch="\u5927\u5bb6\u597d"

再运行结果如下:

"大家好"

分享到:
评论

相关推荐

    android-jps-plugin

    完美解决can't find bundle for base name messages.AndroidJpsBundle.locale zh_CN这个错误。 包含android-jps-plugin.jar和AndroidJpsBundle.properties,两个文件,其中jar包里也含有AndroidJpsBundle.properties

    resources_cn安卓工作室android studio 2.3.3中文汉化包_韩梦飞沙.jar

    Can't find resource for bundle java.util.PropertyResourceBundle, key emmet.bem.class.name.element.separator.label 安卓工作室 android studio 版本 2.3.3。 还有美化,修改 定制 教程。作者:韩梦飞沙。邮箱...

    手动解决Cannot find module '@sentry/webpack-plugin'等问题

    解决Cannot find module '@sentry/webpack-plugin',Cannot find module '@sentry/browser',Cannot find module '@sentry/cli'等问题。 下载后,解压后文件夹,放在vue项目的node_modules文件夹下,即可。

    java读取WEB-INF或src目录下的properties配置文件

    大家都喜欢把配置文件放在src目录下,如果有10个以上的配置文件为什么不考虑在WEB-INF目录下新建一个文件夹,专门放配置文件;这样即好管理,文件安全性又高。亲问题已经解决,把源代码共享给大家,已经通过测试;...

    Android学习笔记之bundle用法源码

    本篇学习笔记将深入探讨Bundle的使用方法和源码分析,帮助开发者更好地理解和运用这一核心概念。 首先,我们要理解Bundle的基本用法。Bundle是一个键值对的集合,类似于Java中的HashMap。你可以通过键(key)来存储...

    sdk adt bundle for windows中文包

    SDK ADT Bundle for Windows中文包是一款专为Windows操作系统设计的Android开发工具集,它包含了所有必要的组件,使得开发者能够在Windows环境下高效地构建、测试和调试Android应用。这个包的全称为"Android ...

    .NET Core 2.1 Runtime & Hosting Bundle for Windows (v2.1.4)

    iis运行net core必备,最新版本,双击安装,打开iis,查看“模块”,确认“AspNetCoreModule”模块已注册。

    Generic Sparse Bundle Adjustment for C++

    总的来说,"Generic Sparse Bundle Adjustment for C++" 提供了一个强大的工具,对于那些需要在资源受限的环境中进行高精度视觉定位和重建的项目来说,具有极大的价值。其通用性和高效性使得它成为计算机视觉领域不...

    SBA: A Software Package for Generic Sparse Bundle Adjustment

    SBA: A Software Package for Generic Sparse Bundle Adjustment SBA: A Software Package for Generic Sparse Bundle Adjustment SBA: A Software Package for Generic Sparse Bundle Adjustment SBA: A Software ...

    datax-v202309 clickhousereader bug修复后jar包 免费下载

    datax_v202309 默认的clickhousereader 报错:java.util.MissingResourceException: Can't find bundle for base name com.alibaba.datax.plugin.reader.clickhousereader.LocalStrings, locale zh_CN。 该资源为BUG...

    Eclipse插件开发学习笔记.pdf

    Eclipse插件开发学习笔记将带领我们深入了解Eclipse插件开发的方方面面。 首先,我们需要了解Eclipse插件的基础概念。在Eclipse中,插件主要由一系列的扩展点(Extension Points)组成,这些扩展点定义了插件可以...

    SpringDM笔记7-开发SpringDM Bundle

    - 创建一个名为MANIFEST.MF的元数据文件,声明Bundle的元信息,如Bundle-SymbolicName、Bundle-Version等,并指定Bundle-ClassPath和Import-Package来指示依赖的其他模块。 - 编写Spring配置文件,定义Bundle中的...

    Deep Learning for Computer Vision with Python - Practitioner Bundle

    Deep Learning for Computer Vision with Python Practioner Bundle + Starter Bundle by Adrian Rosebrock of PyImageSearch

    felix学习二-发布classpath为bundle

    在"felix学习二-发布classpath为bundle"这个主题中,我们关注的是如何将我们的类路径转换成一个符合OSGi规范的bundle。这通常涉及到以下几个步骤: 1. **创建MANIFEST.MF**: OSGi bundle的元数据存储在MANIFEST.MF...

    bundle-tool.jar依赖

    解决appium-doctor报bundletool.jar cannot be found问题 解决appium-doctor报bundletool.jar cannot be found问题 解决appium-doctor报bundletool.jar cannot be found问题 解决appium-doctor报bundletool.jar ...

    SpringDM笔记6-Fragment及配置Log4j Fragment Bundle

    <property name="location" value="bundle:classpath:log4j.properties"/> ``` 6. **配置Spring DM**:最后,我们需要配置Spring DM以启动Fragment Bundle并将其连接到Host Bundle。这可以通过使用`osgi:...

    IOS打包Bundle与加载Demo

    let bundle = Bundle(path: Bundle.main.path(forResource: "ResourcesBundle", ofType: "bundle")!) let image = UIImage(contentsOfFile: bundle.path(forResource: "myImage", ofType: "png")!) ``` 这里的`...

    Android中Bundle的小例子

    在Android应用开发中,`Bundle`是一个至关重要的...在本示例中,我们学习了如何创建`Bundle`,如何通过`Intent`传递,以及在目标Activity中如何接收和解包数据。这些基础知识将为你的Android开发生涯奠定坚实的基础。

    Intent_Bundle_传参数

    在创建Intent后,我们可以通过`putExtra()`方法为Intent添加键值对,但当数据类型复杂时,可先创建一个Bundle对象,然后用`putExtras(Bundle)`方法将Bundle添加到Intent中。例如: ```java Bundle bundle = new ...

Global site tag (gtag.js) - Google Analytics