我使用的只有一个项目到端口精简版和完整版的,我刚更新的清单文件包名。
我的项目结构是这样的
我的应用程序
| _src
| _com.example.myapp
| _MyClass.java
和我的清单包名称是不同的。
包= “com.example.myapplite”
我使用的一个库项目中,我想包我使用MyApp的类名。
我已经使用这个
System.out.println("Package Name " + context.getPackageName());
但它给我一个清单文件包名称值即。 com.example.myapplite
我想MyClass.java包名。 即。 com.example.myapp
另外我知道这个
MyClass mClass = new MyClass();
Package pack = mClass.getClass().getPackage();
但是因为我用下面的方法来获取类文件在我的图书馆项目,我不能用这种方法
Class c = Class.forName("package_name.MyClass");
如何获得MyClass.java文件的包名编程?
可能是有益的
package org.kodejava.example.lang;
import java.util.Date;
public class ObtainingPackageName {
public static void main(String[] args) {
//
// Create an instance of Date class, and then obtain the class package
// name.
//
Date date = new Date();
Package pack = date.getClass().getPackage();
String packageName = pack.getName();
System.out.println("Package Name = " + packageName);
//
// Create an insatnce of our class and again get its package name
//
ObtainingPackageName o = new ObtainingPackageName();
packageName = o.getClass().getPackage().getName();
System.out.println("Package Name = " + packageName);
}
}
试试这个,
try {
Class c = Class.forName("package_name.MyClass");
Object o = c.newInstance();
Package p = o.getClass().getPackage();
System.out.println("Package Name :: " + p.getName());
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
String packageName = this.getClass().getPackage().getName();
肯定会工作。
一些类的简单例子NotificationListener
:
Timber.d(NotificationListener.class.getPackage().getName());
Timber.d(NotificationListener.class.getSimpleName());
Timber.d(NotificationListener.class.getName());
输出:
D/PermissionsUtil: com.example.receivers
D/PermissionsUtil: NotificationListener
D/PermissionsUtil: com.example.receivers.NotificationListener
该解决方案科特林:
val packageName = this.javaClass.`package`?.name