Java Class.getSimpleName()和.getName()在Cacao和Sun Java上的行为不同

Java Class.getSimpleName()和.getName()在Cacao和Sun Java上的行为不同,java,jvm-hotspot,Java,Jvm Hotspot,有人知道为什么会这样吗 这是Java DBus绑定(2.6)中的一些修改行 现在看看可可豆(0.99.4)和Sun 1.5的产量差异 @ubuntu:~/tmp/cacao$ java -version java version "1.5.0_16" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b02) Java HotSpot(TM) Client VM (build 1.5.0_16-b02, mixed

有人知道为什么会这样吗

这是Java DBus绑定(2.6)中的一些修改行

现在看看可可豆(0.99.4)和Sun 1.5的产量差异

@ubuntu:~/tmp/cacao$ java -version
java version "1.5.0_16"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b02)
Java HotSpot(TM) Client VM (build 1.5.0_16-b02, mixed mode, sharing)

@ubuntu:~/tmp/cacao$ cacao -version
java version "1.5.0"
CACAO version 0.99.3+hg

java -Djava.library.path=/usr/lib/classpath:/ho... DBusChat 

type.getName: org.freedesktop.DBus   type.getSimpleName: DBus
...Exception in thread "main" org.freedesktop.dbus.exceptions.DBusExecutionException: Could not get owner of name 'framez.tests.dbus.DbusChatInterface': no such name

 cacao -Djava.library.path=/usr/lib/classpath:/ho... DBusChat
 type.getName: org.freedesktop.DBus   type.getSimpleName: org.freedesktop.DBus
异常并不重要-它是由这种行为引起的。。。有什么想法吗?或者这是某种奇怪的可可虫

有人知道.getName()是否依赖于VM吗

信息:

两个JVM上的GNU类路径0.98
DBus bindings 2.6这很可能是通往Cacao平台的GNU类路径端口中的一个bug。如果我没有记错的话,那么
java.lang.Class
的类路径版本中的大多数方法都会委托给一个“vm”类,该类需要为库的每个端口实现

  // don't let people import things which don't have a
  // valid D-Bus interface name
  System.out.println("type.getName: " + type.getName() + "   type.getSimpleName: " + type.getSimpleName() );
  if (type.getName().equals(type.getSimpleName()))  {
      throw new DBusException(_("DBusInterfaces cannot be declared outside a package: " + "type.getName: " + type.getName()
              + "   type.getSimpleName: " + type.getSimpleName() ));
  }      

当然
Class.getSimpleName()
应该返回没有包限定的类名。

这是一个类路径错误。确认可可队。这是vm.reference.java.lang.VMClass中的一个简单修复。最近似乎对GNU类路径有了新的兴趣,因此在CVS中有了解决此问题的补丁,最后:您使用了“错误”机制来确定类是独立类还是内部类。GetEnclosuringClass()等等。