从来没有用过中文为包名的,今天测试在类中取得当前文件所在的相对路径与绝对路径时发现个这个问题,特此提醒一下,有谁设置包名为中文的 JDK的不同版本测试过了吗?从JDK 1.1.6到JDK 1.5.0 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Java规定不能使用中文作类名和接口名,不过没说不能做包名。但是这也不大好,因为不同系统对中文的支持不同,如果系统不支持中文文件名,或者不适用Unicode做中文的编码格式恐怕就要出问题。有没有试过Linux和Unix系统 我测试过的JDK版本有:一、1.4.2_06-b03支持Z:\Yu_Limin\Java\JavaSocket编程>java -versionjava version "1.4.2_06"Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_06-b03)Java HotSpot(TM) Client VM (build 1.4.2_06-b03, mixed mode)Z:\Yu_Limin\Java\JavaSocket编程>java 中文包.GetClassPathClassName:中文包.GetClassPathPackageName:中文包ClassFileName:GetClassPathfile:/Z:/Yu_Limin/Java/JavaSocket%e7%bc%96%e7%a8%8b/中文包/GetClassPath.classZ:/Yu_Limin/Java/JavaSocket编程/中文包二、1.4.2_04-b05支持F:\Borland\JBuilder\jdk1.4\bin>java -versionjava version "1.4.2_04"Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_04-b05)Java HotSpot(TM) Client VM (build 1.4.2_04-b05, mixed mode)Z:\Yu_Limin\Java\JavaSocket编程>cd F:\Borland\JBuilder\jdk1.4\binZ:\Yu_Limin\Java\JavaSocket编程>F:java 中文包.GetClassPathClassName:中文包.GetClassPathPackageName:中文包ClassFileName:GetClassPathfile:/Z:/Yu_Limin/Java/JavaSocket%e7%bc%96%e7%a8%8b/中文包/GetClassPath.classZ:/Yu_Limin/Java/JavaSocket编程/中文包三、1.5.0_01-b08支持E:\J2SDK\1.5.0\bin>java -versionjava version "1.5.0_01"Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_01-b08)Java HotSpot(TM) Client VM (build 1.5.0_01-b08, mixed mode, sharing)Z:\Yu_Limin\Java\JavaSocket编程>E:\J2SDK\1.5.0\bin\java 中文包.GetClassPathClassName:中文包.GetClassPathPackageName:中文包ClassFileName:GetClassPathfile:/Z:/Yu_Limin/Java/JavaSocket%e7%bc%96%e7%a8%8b/%e4%b8%ad%e6%96%87%e5%8c%85/GetClassPath.classZ:/Yu_Limin/Java/JavaSocket编程/中文包四、JDK-1.2.2_017的不支持!!!Z:\Yu_Limin\Java\JavaSocket编程>Z:\JDK1.2.2\bin\java -versionjava version "1.2.2"Classic VM (build JDK-1.2.2_017, native threads, symcjit)Z:\Yu_Limin\Java\JavaSocket编程>Z:\JDK1.2.2\bin\java 中文包.GetClassPathException in thread "main" java.lang.NoClassDefFoundError: ?????/GetClassPath五、1.3的没有测试过谁补充一下:) 以上测试均在Windows系统下面的哦,没有在其它平台上面测试过 倒没有想过用中文作为package名,不过考虑到绝大部分应用都是在linux或者unix下面,所以就算想用也不用了,免得有问题发生。 不过,我想很少人用中文名来作包名的吧JDK的版本越来越高支持了而已可能核心上面有改变,要不然1.2.2的都不支持中文包名 .class文件如何反编译出原来的.java文件? java 内存操作问题 java工程中如何修改文件名 在性能测试中,tomcat出现out of memory 一个小的概念问题 用Java如何调用 SQL的存储过程并接收 返回值 很简单的问题,在线等待 怎么把字符串转存到数组? 关于接口的实现类 Quartz中,对job和trigger都要定义一个组名字(group),这个组有什么用处? 菜鸟问题:怎样把字符数组转化成内容相同的字符串? 如何用java向access数据库写入法文字符?
但是这也不大好,因为不同系统对中文的支持不同,如果系统不支持中文文件名,或者不适用Unicode做中文的编码格式恐怕就要出问题。有没有试过Linux和Unix系统
一、1.4.2_06-b03支持
Z:\Yu_Limin\Java\JavaSocket编程>java -version
java version "1.4.2_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_06-b03)
Java HotSpot(TM) Client VM (build 1.4.2_06-b03, mixed mode)Z:\Yu_Limin\Java\JavaSocket编程>java 中文包.GetClassPath
ClassName:中文包.GetClassPath
PackageName:中文包
ClassFileName:GetClassPath
file:/Z:/Yu_Limin/Java/JavaSocket%e7%bc%96%e7%a8%8b/中文包/GetClassPath.class
Z:/Yu_Limin/Java/JavaSocket编程/中文包二、1.4.2_04-b05支持
F:\Borland\JBuilder\jdk1.4\bin>java -version
java version "1.4.2_04"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_04-b05)
Java HotSpot(TM) Client VM (build 1.4.2_04-b05, mixed mode)Z:\Yu_Limin\Java\JavaSocket编程>cd F:\Borland\JBuilder\jdk1.4\bin
Z:\Yu_Limin\Java\JavaSocket编程>F:java 中文包.GetClassPath
ClassName:中文包.GetClassPath
PackageName:中文包
ClassFileName:GetClassPath
file:/Z:/Yu_Limin/Java/JavaSocket%e7%bc%96%e7%a8%8b/中文包/GetClassPath.class
Z:/Yu_Limin/Java/JavaSocket编程/中文包三、1.5.0_01-b08支持
E:\J2SDK\1.5.0\bin>java -version
java version "1.5.0_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_01-b08)
Java HotSpot(TM) Client VM (build 1.5.0_01-b08, mixed mode, sharing)Z:\Yu_Limin\Java\JavaSocket编程>E:\J2SDK\1.5.0\bin\java 中文包.GetClassPath
ClassName:中文包.GetClassPath
PackageName:中文包
ClassFileName:GetClassPath
file:/Z:/Yu_Limin/Java/JavaSocket%e7%bc%96%e7%a8%8b/%e4%b8%ad%e6%96%87%e5%8c%85/
GetClassPath.class
Z:/Yu_Limin/Java/JavaSocket编程/中文包四、JDK-1.2.2_017的不支持!!!
Z:\Yu_Limin\Java\JavaSocket编程>Z:\JDK1.2.2\bin\java -version
java version "1.2.2"
Classic VM (build JDK-1.2.2_017, native threads, symcjit)Z:\Yu_Limin\Java\JavaSocket编程>Z:\JDK1.2.2\bin\java 中文包.GetClassPath
Exception in thread "main" java.lang.NoClassDefFoundError: ?????/GetClassPath五、1.3的没有测试过
谁补充一下:)