java获取类所在的包名(java获取类名的字符串)

今天给各位分享java获取类所在的包名的知识,其中也会对java获取类名的字符串进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java怎么用代码获取类所在的包名

A.class.getPackage().getName();

上面这个代码就是获取类A的包的全名的,如果你类A首行写着“package

com.xxx.demo”,哪那么你用上面的代码就会获取到package

com.xxx.demo

利用java反射机制,通过一个对象获得完整的包名和类名

1、Test t = new Test().Class clazz = t.getClass().System.out.println(clazz.getCanonicalName()).System.out.println(clazz.getSimpleName()).

2、public class TestReflect {public static void main(String[] args) throws Exception {TestReflect testReflect = new TestReflect().System.out.println(testReflect.getClass().getName()).// 结果 net.xsoftlab.baike.TestReflect.}}

3、Java程序

怎样获取应用的包名和类名及解析aapt

原理:

通过查看AndroidManifest.xml

方法:

可以通过如下方法获得:

1.aapt

aapt dump xmltree apk路径 AndroidManifest.xml 输入的路径

2.apktool 反编译

apktool d -f apk路径 输出的路径

3.monkey---Android自带的工具

adb shell monkey --port 1080 -v -v

aapt即 Android Asset Packaging Tool

该工具在SDK/tools目录下,如果你没有设置环境变量,那需要进入该目录下才能运行aapt命令,如果设置了环境变量则可以在任何目录下运行aapt命令了。

1、列出压缩文件目录

aapt l[ist] [-v] [-a] file.{zip,jar,apk}

参数:

-v:会以table的形式输出目录,table的表目有:Length、Method、Size、Ratio、Date、Time、CRC-32、Name。其中Method表示压缩形式,有Deflate和Stored两种,即该Zip目录采用的算法是压缩模式还是存储模式;Ratio表示压缩率。

-a:会详细输出所有目录的内容。

2、查看APK的相关信息

aapt d[ump] [--values] WHAT file.{apk} [asset [asset ...]]

badging Print the label and icon for the app declared in APK.

permissions Print the permissions from the APK.

resources Print the resource table from the APK.

configurations Print the configurations in the APK.

xmltree Print the compiled xmls in the given assets.

xmlstrings Print the strings of the given compiled xml assets.

1)、查看APK包的packageName、versionCode、applicationLabel、launcherActivity、permission等各种详细信息

aapt dump badging file.apk

2)、查看权限

aapt dump permissions file.apk

3)、查看资源列表

aapt dump resources file.apk

把查看信息保存到文件中去可以使用:

aapt dump resources file_path.apk sodino.txt

4)、查看APK配置信息

aapt dump configurations file_path.apk

5)、查看指定APK的指定XML文件

aapt dump xmltree file_path.apk res/***.xml

以树形结构输出的xml信息。

aapt dump xmlstrings file_path.apk res/***.xml

输出xml文件中所有的字符串信息。

3、编译android资源

aapt p[ackage] [-d][-f][-m][-u][-v][-x][-z][-M AndroidManifest.xml] \

[-0 extension [-0 extension ...]] [-g tolerance] [-j jarfile] \

[--debug-mode] [--min-sdk-version VAL] [--target-sdk-version VAL] \

[--app-version VAL] [--app-version-name TEXT] [--custom-package VAL] \

[--rename-manifest-package PACKAGE] \

[--rename-instrumentation-target-package PACKAGE] \

[--utf16] [--auto-add-overlay] \

[--max-res-version VAL] \

[-I base-package [-I base-package ...]] \

[-A asset-source-dir] [-G class-list-file] [-P public-definitions-file

\

[-S resource-sources [-S resource-sources ...]] \

[-F apk-file] [-J R-file-dir] \

[--product product1,product2,...] \

[-c CONFIGS] [--preferred-configurations CONFIGS] \

[-o] \

[raw-files-dir [raw-files-dir] ...]

Package the android resources. It will read assets and resources that are

supplied with the -M -A -S or raw-files-dir arguments. The -J -P -F and -R

options control which files are output.

部分参数解释:

-f:如果编译出来的文件已经存在,强制覆盖;

-m:使生成的包的目录放在-J参数指定的目录;

-J:指定生成的R.Java的输出目录;

-S:res文件夹路径;

-A:assert文件夹的路径;

-M:AndroidManifest.xml的路径;

-l:某个版本平台的android.jar的路径;

-F:具体指定APK文件的输出

1)、将工程的资源编译出R.java文件

aapt package –m –J R.java目录 -S res目录 -l android.jar目录 -M

AndroidManifest.xml目录

2)、将工程的资源编译到一个包里

aapt package –f –S res目录 -l android.jar目录 -A assert目录 -M

AndroidManifest.xml目录 -F 输出的包目录

4、打包好的APK中移除文件

aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2 ...]

5、添加文件到打包好的APK中

aapt a[dd] [-v] file.{zip,jar,apk} file1 [file2 ...]

6、显示aapt的版本

aapt v[ersion]

java怎么获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名

可以使用以下代码来获取src目录下所有的包名,类名,方法名 以及通过一个类名获得该类下的所有方法名。

import java.io.File;

import java.lang.reflect.Method;

public class LoopApp {

public static void main(String[] args) throws Exception {

String packageName = "";

File root = new File(System.getProperty("user.dir") + "\\src");

loop(root, packageName);

}

public static void loop(File folder, String packageName) throws Exception {

File[] files = folder.listFiles();

for (int fileIndex = 0; fileIndex files.length; fileIndex++) {

File file = files[fileIndex];

if (file.isDirectory()) {

loop(file, packageName + file.getName() + ".");

} else {

listMethodNames(file.getName(), packageName);

}

}

}

public static void listMethodNames(String filename, String packageName) {

try {

String name = filename.substring(0, filename.length() - 5);

Object obj = Class.forName(packageName + name);

Method[] methods = obj.getClass().getDeclaredMethods();

System.out.println(filename);

for (int i = 0; i methods.length; i++) {

System.out.println("\t" + methods[i].getName());

}

} catch (Exception e) {

System.out.println("exception = " + e.getLocalizedMessage());

}

}

}

java 获取指定包下类的实例(100分)

1.首先,把你指定的包,转换成本地路径

2.列出本地路径下的所有类,并把.class去掉,再拼接上 包名

3.根据上面获取的类的全限定名,依次利用Class.forName(StringName).newInstance()来创建实例

4.把创建好的实例添加到集合中。

Code:

/***********

* 根据包名来获取此包下所有的类名及其实例

* @param packName

* @return

*/

public static SetObject getObjectsInPackage(String packName){

SetObject objs = new HashSetObject();

String packageName = packName;

String packageDirName = packageName.replace(".", "/");

EnumerationURL dirs = null;

try {

dirs = Thread.currentThread().getContextClassLoader().getResources(packageDirName);

//迭代此 Enumeration

while(dirs.hasMoreElements()){

URL url = dirs.nextElement();

File file = new File(url.getFile());

//把此目录下的所有文件列出

String[] classes = file.list();

//循环此数组,并把.class去掉

for(String className : classes){

className = className.substring(0,className.length()-6);

//拼接上包名,变成全限定名

String qName = packageName+"."+className;

//如有需要,把每个类生实一个实例

Object obj = Class.forName(qName).newInstance();

//添加到集合中

objs.add(obj);

}

}

} catch (Exception e) {

e.printStackTrace();

}

return objs;

}

java获取类所在的包名的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java获取类名的字符串、java获取类所在的包名的信息别忘了在本站进行查找喔。


【免责声明】:

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

【关于转载】:

本站尊重互联网版权体系,本站部分图片、文章大部分转载于互联网、所有内容不代表本站观点、不对文章中的任何观点负责、转载的目的只用于给网民提供信息阅读,无任何商业用途,所有内容版权归原作者所有
如本站(文章、内容、图片、视频)任何资料有侵权,先说声抱歉;麻烦您请联系请后台提交工单,我们会立即删除、维护您的权益。非常感谢您的理解。

【附】:

二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!

注:本站资源来自网络转载,版权归原作者和公司所有,如果有侵犯到您的权益,请第一时间联系我们处理!

-----------------------------------------------------------------------------------------------------------

【版权声明】:

一、本站致力于为源码爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、如有内容侵犯您的版权或其他利益的,请编辑邮件并加以说明发送到站长邮箱。站长会进行审查之后,情况属实的会在三个工作日内为您删除。
-----------------------------------------------------------------------------------------------------------


内容投诉
源码村资源网 » java获取类所在的包名(java获取类名的字符串)
您需要 登录账户 后才能发表评论

发表评论

欢迎 访客 发表评论