13

マニフェストファイルのパッケージ名を更新しているだけなので、ライトバージョンとフルバージョンを移植するために1つのプロジェクトのみを使用しています。

私のプロジェクト構造はこのようなものです

マイ アプリ
      |_src
          |_com.example.myapp
                                              |_MyClass.java

私のマニフェストパッケージ名は異なります。

package="com.example.myapplite"

MyApp で使用しているクラスのパッケージ名が必要なという点で、1 つのライブラリ プロジェクトを使用しています。

私はこれを使用しました

        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ファイルのパッケージ名をプログラムで取得するには?

4

5 に答える 5

12

役に立つかもしれない

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);
   }
} 
于 2013-02-15T07:06:39.163 に答える
2
String packageName = this.getClass().getPackage().getName();

間違いなく動作します。

于 2017-04-09T05:12:55.440 に答える
1

これを試して、

    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();
    }
于 2013-02-15T07:19:33.673 に答える
1

いくつかのクラスの簡単な例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
于 2017-08-24T14:00:22.877 に答える