前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在指定的路径中的Jar文件中寻找自己所需要的class 博客分类: JavaWebSphereMacIBM JavaJDKJarClass

在指定的路径中的Jar文件中寻找自己所需要的class 博客分类: JavaWebSphereMacIBM JavaJDKJarClass

作者头像
阿敏总司令
发布2019-02-28 11:42:49
9940
发布2019-02-28 11:42:49
举报
文章被收录于专栏:简单就是美!简单就是美!

阅读更多

代码语言:javascript
复制
//功能:在指定的路径中的Jar文件中寻找自己所需要的class
//用法:提供本地磁盘路径和所需要的class的全称(包括package等信息)
//例如:Java -cp . JarClassFind Path ClassName
//eg:  Java -cp . JarClassFind F:\JDK java.applet.Applet

import java.io.File;
import java.util.Enumeration;
import java.util.jar.JarFile;

public class JarClassFind
{
	public static int	count	= 0;

	public JarClassFind()
	{
	}

	private static void findClassInLocalSystem(String path, String classname)
	{
		if ((path.charAt(path.length() - 1)) != File.separatorChar)
		{
			path += File.separatorChar;
		}
		File file = new File(path);
		if (!file.exists())
		{
			System.out.println("Error: Path not Existed! Please Check it out!");
			return;
		}
		String[] filelist = file.list();
		if (filelist != null)
		{
			for (int i = 0; i < filelist.length; i++)
			{
				File temp = new File(path + filelist[i]);
				if ((temp.isDirectory() && !temp.isHidden() && temp.exists()))
				{
					findClassInLocalSystem(path + filelist[i], classname);
				}
				else
				{
					if (filelist[i].endsWith(".jar"))
					{
						try
						{
							JarFile jarfile = new JarFile(path + filelist[i]);
							for (Enumeration enumeration = jarfile.entries(); enumeration.hasMoreElements();)
							{
								String name = enumeration.nextElement().toString();
								if (name.equals(classname))
								{
									System.out.print("No." + ++JarClassFind.count);
									System.out.println("\t" + path + filelist[i]);
									// System.out.println(name);
								}
							}
							jarfile.close();
						}
						catch (Exception ex)
						{
							ex.printStackTrace();
						}
					}
				}
			}
		}
		else
		{
			System.out.println("File list is null or Permission denied, please check : " + path);
		}
	}

	public static void main(String[] args)
	{
		System.out.print("You are searching Java Class on: " + System.getProperty("os.name"));
		System.out.println("\t\tFile.separator is : " + File.separator);

		if (args.length < 2)
		{
			showHowToUsage();
			return;
		}
		String absoluteclassname = args[1].replace('.', '/') + ".class";
		System.out.println("Find class [" + args[1] + "] in Path [" + args[0] + "] Results:");
		findClassInLocalSystem(args[0], absoluteclassname);
		if (JarClassFind.count == 0)
		{
			System.out.println("Error:Can't Find Such Jar File!");
		}
		System.out.println("Find Process Ended! Total Results:" + JarClassFind.count);
	}

	private static void showHowToUsage()
	{
		System.out.println("Usage: Java -cp . JarClassFind <source path> <source class name>");
		System.out.println("Usage: Java -classpath . JarClassFind <source path> <source class name>");
		System.out.println("");
		System.out.println("<source path>:\t\tPath to Find eg:F:\\JDK");
		System.out.println("<source class name>:\tClass to Find eg:java.applet.Applet");
	}
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2005-11-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档