如何在Java中程序内部获取运行时所在包及类的名称?
时间: 2024-12-10 22:53:47 浏览: 6
在Java中,你可以使用`java.lang.Class`类及其静态方法来获取当前运行时所在的包名和类名。下面是一个简单的例子:
```java
public class MyClass {
public static void main(String[] args) {
// 获取当前类的信息
Class<?> clazz = MyClass.class; // 当前类的Class对象
// 获取包名
String packageName = clazz.getPackage().getName();
System.out.println("Package Name: " + packageName);
// 获取类名(包括包名)
String className = clazz.getName();
System.out.println("Class Name: " + className);
// 如果你想去掉包名只取类名,可以这样做
int lastDotIndex = className.lastIndexOf('.');
if (lastDotIndex != -1) {
className = className.substring(lastDotIndex + 1); // 从最后一个"."开始截取到end
}
System.out.println("Class Name (no package): " + className);
}
}
```
在这个例子中,`getPackage().getName()`用于获取包名,而`getName()`则是获取完整的类名,包括包名。如果需要去掉包名,只需要找到最后一个`.`的位置并截取其后的部分。
阅读全文