- 浏览: 260174 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
no_studio:
期待实现SqlServer
发布异种数据库导入工具jmyetl-1.0.2 -
babydeed:
不错 再接再厉
发布异种数据库导入工具jmyetl-1.0.2 -
iihero:
<div class="quote_title ...
命令行快速找出class文件所在的jar包 -
niwtsew:
说错,是strings不是string
命令行快速找出class文件所在的jar包 -
niwtsew:
贴个俺自己写的linux下的版本,其实没必要用7z,直接jar ...
命令行快速找出class文件所在的jar包
for %i in (dir/b/s *.jar) do 7z l %i | findstr XDatabase.class
示例输出:
D:\shared\xsql>for %i in (dir/b/s *.jar) do 7z l %i |findstr XDatabase.class D:\shared\xsql>7z l dir/b/s | findstr XDatabase.class D:\shared\xsql>7z l db2jcc.jar | findstr XDatabase.class D:\shared\xsql>7z l db2jcc_license_cu.jar | findstr XDatabase.class D:\shared\xsql>7z l jconn3.jar | findstr XDatabase.class D:\shared\xsql>7z l jodbc.jar | findstr XDatabase.class D:\shared\xsql>7z l jTDS3.jar | findstr XDatabase.class D:\shared\xsql>7z l mlscript.jar | findstr XDatabase.class D:\shared\xsql>7z l msbase.jar | findstr XDatabase.class D:\shared\xsql>7z l mssqlserver.jar | findstr XDatabase.class D:\shared\xsql>7z l msutil.jar | findstr XDatabase.class D:\shared\xsql>7z l mysql-connector-java-5.1.6-bin.jar | findstr XDatabase.class D:\shared\xsql>7z l ojdbc14.jar | findstr XDatabase.class D:\shared\xsql>7z l postgresql-8.4-701.jdbc4.jar | findstr XDatabase.class D:\shared\xsql>7z l sqlite.jar | findstr XDatabase.class D:\shared\xsql>7z l sqlitejdbc-v056-zentus.jar | findstr XDatabase.class D:\shared\xsql>7z l sqljdbc.jar | findstr XDatabase.class D:\shared\xsql>7z l ULjDatabaseTransfer.jar | findstr XDatabase.class D:\shared\xsql>7z l UltraLiteJ.jar | findstr XDatabase.class D:\shared\xsql>7z l UltraLiteJ12.jar | findstr XDatabase.class [b]D:\shared\xsql>7z l xsql.jar | findstr XDatabase.class 2010-12-24 21:05:40 ..... 30863 14443 [/b]com\sean\db\XDatabase.class
上述命令弄得还是比较粗糙,干脆写一个批处理findclass.bat
内容如下:
@echo off SETLOCAL set WHICH_CLASS=%1 echo WHICH_CLASS=%WHICH_CLASS% for /F %%i in ('dir /A:-D /S /B *.jar') do 7z l %%i | findstr %WHICH_CLASS% && echo %WHICH_CLASS% found in: "%%i" echo "Finished class finding..." echo "======================================" ENDLOCAL
这样想查找一个class就很容易了:
引用
findclass com\\sybase\\afx\\util\\StringUtil.class
WHICH_CLASS=com\\sybase\\afx\\util\\StringUtil.class
2012-02-27 13:14:36 ..... 15230 5915 com\sybase\afx\util\StringUtil.class
com\\sybase\\afx\\util\\StringUtil.class found in: "U:\target\lib\ext\sup-client.jar"
2012-02-27 13:14:36 ..... 15230 5915 com\sybase\afx\util\StringUtil.class
com\\sybase\\afx\\util\\StringUtil.class found in: "U:\target\lib\ext\sup-server-rt.jar"
"Finished class finding..."
"======================================"
WHICH_CLASS=com\\sybase\\afx\\util\\StringUtil.class
2012-02-27 13:14:36 ..... 15230 5915 com\sybase\afx\util\StringUtil.class
com\\sybase\\afx\\util\\StringUtil.class found in: "U:\target\lib\ext\sup-client.jar"
2012-02-27 13:14:36 ..... 15230 5915 com\sybase\afx\util\StringUtil.class
com\\sybase\\afx\\util\\StringUtil.class found in: "U:\target\lib\ext\sup-server-rt.jar"
"Finished class finding..."
"======================================"
其实,最想弄的,是把7z的源码稍作修改,直接让7z l <文件> | findstr <class> 直接同时输出文件名,那是最好的办法。
评论
3 楼
iihero
2012-02-28
niwtsew 写道
贴个俺自己写的linux下的版本,其实没必要用7z,直接jar tf就可以察看jar里的内容,或者linux下用string也可以
#!/bin/ksh
#this script is used to find class in which jar file
if [ "$#" -le "1" ]; then
echo "Usage: $0 class_name jar_path_1 [jar_path2]...[jar_pathn]"
exit 1
fi
#class to be found
CLASS=$1
shift 1
for JAR in $*
do
if [ -d ${JAR} ]
then
JARS=`find ${JAR} -name "*.jar"`
else
JARS=${JAR}
fi
FOUND=""
for EACHJAR in ${JARS}
do
FOUND=$(jar tf ${EACHJAR}|grep ${CLASS})
if [ "x${FOUND}" != "x" ]
then
echo "-----------------------------------"
echo ${CLASS} was found in ${EACHJAR}
echo ${FOUND}|tr " " "\n"|grep -v .classPK
fi
done
done
exit 0
#!/bin/ksh
#this script is used to find class in which jar file
if [ "$#" -le "1" ]; then
echo "Usage: $0 class_name jar_path_1 [jar_path2]...[jar_pathn]"
exit 1
fi
#class to be found
CLASS=$1
shift 1
for JAR in $*
do
if [ -d ${JAR} ]
then
JARS=`find ${JAR} -name "*.jar"`
else
JARS=${JAR}
fi
FOUND=""
for EACHJAR in ${JARS}
do
FOUND=$(jar tf ${EACHJAR}|grep ${CLASS})
if [ "x${FOUND}" != "x" ]
then
echo "-----------------------------------"
echo ${CLASS} was found in ${EACHJAR}
echo ${FOUND}|tr " " "\n"|grep -v .classPK
fi
done
done
exit 0
曾经考虑过使用jar命令,无奈运行速度实在太慢了,跟7z没法比。
2 楼
niwtsew
2012-02-28
说错,是strings不是string
1 楼
niwtsew
2012-02-28
贴个俺自己写的linux下的版本,其实没必要用7z,直接jar tf就可以察看jar里的内容,或者linux下用string也可以
#!/bin/ksh
#this script is used to find class in which jar file
if [ "$#" -le "1" ]; then
echo "Usage: $0 class_name jar_path_1 [jar_path2]...[jar_pathn]"
exit 1
fi
#class to be found
CLASS=$1
shift 1
for JAR in $*
do
if [ -d ${JAR} ]
then
JARS=`find ${JAR} -name "*.jar"`
else
JARS=${JAR}
fi
FOUND=""
for EACHJAR in ${JARS}
do
FOUND=$(jar tf ${EACHJAR}|grep ${CLASS})
if [ "x${FOUND}" != "x" ]
then
echo "-----------------------------------"
echo ${CLASS} was found in ${EACHJAR}
echo ${FOUND}|tr " " "\n"|grep -v .classPK
fi
done
done
exit 0
#!/bin/ksh
#this script is used to find class in which jar file
if [ "$#" -le "1" ]; then
echo "Usage: $0 class_name jar_path_1 [jar_path2]...[jar_pathn]"
exit 1
fi
#class to be found
CLASS=$1
shift 1
for JAR in $*
do
if [ -d ${JAR} ]
then
JARS=`find ${JAR} -name "*.jar"`
else
JARS=${JAR}
fi
FOUND=""
for EACHJAR in ${JARS}
do
FOUND=$(jar tf ${EACHJAR}|grep ${CLASS})
if [ "x${FOUND}" != "x" ]
then
echo "-----------------------------------"
echo ${CLASS} was found in ${EACHJAR}
echo ${FOUND}|tr " " "\n"|grep -v .classPK
fi
done
done
exit 0
发表评论
-
再谈DOS批处理下格式化日期字符串的方法(详解)
2012-03-31 19:46 1790谈到日期字符串的输出 ... -
How to use "for/" batch command in Dos extention
2012-03-07 08:25 1442以前常觉得DOS的 命令行功能太弱,无法象UNIX一样可以用命 ... -
常用的数据库连接串(JDBC篇)
2011-12-23 06:58 0看到网上传来传去的jdbc url连接串总结,好多都是粘来粘去 ... -
也谈谈网上注册用户的密码设置问题
2011-12-22 11:16 1826看到首页上的" 关于 ... -
DBCP连接池的最简单应用(用于ORACLE数据库)
2011-11-19 05:54 4462鉴于有人问起DBCP直接用于JDBC连接的问题,我做了一个最简 ... -
7zip命令行用法
2011-10-14 10:54 38187zip功能很强大,你只要两个文件: 7z.exe以及7z.d ... -
格式化DOS下时间输出
2011-09-29 09:16 1631dos下由于时间格式不同,使用的echo时间的形式也可能不同, ... -
windows下的mapped driver及其真实路径
2011-09-13 15:55 822由于经常使用windows下自带的subst命令,把一个长路径 ... -
eclipse3.4及以上版本的恢复
2011-08-28 04:58 2345eclipse 3.4以前的版本,如果出现什么问题了,一般都 ... -
推荐几个常用软件及相关介绍的网站
2011-08-23 14:50 775一个是:善用佳软。(http://xbeta.info) 常有 ... -
Macfee实在是太烂了
2011-08-17 17:54 1058Macfee有个FrameworkService.exe进程, ... -
Windows下的Console和RemoteDesktop
2011-08-16 09:19 1215老式的cmd window,实在是很丑很不方便。尤其是打开多个 ... -
添加系统环境变量
2011-08-15 16:00 10281. 注册表直接修改 reg add "hklm\ ... -
日常工作Windows下使用的一些软件工具
2011-04-10 21:21 917如果有正版的东西使用,当然不用那么费力去找免费的替代品了。 ... -
使用Java实现对dbf文件的简单读写
2004-06-09 17:13 979我将dbf文件的读写基本分成四个类,Writer,Reader ... -
简单的整理了一下分页,希望对初学者有帮助
2004-06-23 17:37 729准备工作:在Oracle下,建立一张表:CREATE TABL ... -
编写更快的托管代码[http://blog.csdn.net/zade/category/162553.aspx]
2005-12-14 11:14 1013编写更快的托管代 ... -
数据访问技术路线图[摘自MSDN]
2005-12-15 19:04 846数据访问技术路线图 发布日期: 3/22/2005 | 更新 ... -
Jad - the latest version
2006-09-11 12:35 2322转自:http://www.kpdus.com/jad.htm ... -
java 去掉字符串中的'\'字符
2006-11-03 20:00 1150最近发现比较简单的去掉'\'字符居然不能直接用'\'去替。 ...
相关推荐
- **依赖分析**:在理解项目依赖关系时,找出所有使用特定类的`jar`包,有助于优化构建过程。 - **代码迁移**:在将代码迁移到新的项目结构时,快速找出所有相关的类文件。 - **库更新**:检查新版本的库是否包含了...
1.列出指定路径下的所有Jar包文件 2.搜索分析指定路径下所有jar包中是否存在指定文件。譬方说要在jar包中查询目个**.class文件。用户可以不用打开Jar包,直接输入路径和要查找的文件即可搜索。 3.除了对Jar包进行...
1. **调试与故障排除**:当Java应用程序出现错误时,开发者可以通过查看JAR包中的类文件和资源来找出问题所在。 2. **学习库的内部工作原理**:对于开源库,虽然可以获取源代码,但如果只有JAR包,使用查看器可以...
Java开发过程中,jar包是常用的部署格式,它封装了类文件、资源文件等,使得代码易于管理和分发。然而,在软件迭代更新时,确保不同版本的jar包之间的差异变得至关重要。"jar包差异比较器"就是针对这一需求设计的...
这里提到的“打开文件搜索”是一种实用的方法,通过工具或命令行,如`jar tf <jar_file>`,可以查看jar包内的内容,快速定位所需的类或资源。 在Java开发环境中,有多种方式管理jar包: 1. **MANIFEST.MF文件**:在...
标题提到的"jar包查看工具.zip"是一个压缩包,其中包含了一个可以帮助开发者查看JAR文件内容的工具。这个工具对于理解和调试依赖于JAR库的应用程序至关重要,尤其是当处理第三方或不透明的插件JAR包时。 首先,我们...
- 使用的JAR文件必须包含所需的主类,且该类已编译为.class文件并包含在JAR包内。 - 修改JAR文件的manifest文件时,要确保格式正确,否则可能导致JAR文件无法正常解析。 通过上述步骤,可以有效解决在Windows 7系统...
这里需要注意的是命令中的`-jar`选项,它告诉Java运行时环境去读取该文件的`manifest.mf`文件,并从中找出`Main-Class`,然后执行该类的`main`方法。 #### 总结 通过上述步骤,可以在Linux环境下顺利地执行含有`...
1. **读取.java文件**:遍历目录,找出所有不包含package声明的.java文件。 2. **编译.java为.class**:使用`system()`调用javac,为每个.java文件生成对应的.class文件。 3. **创建Manifest文件**:确定主类,生成...
必须确保主类选择正确,否则生成的Jar包在运行时会出现找不到主类的问题。选中主类后,点击“Finish”按钮,Eclipse会开始打包过程,并最终生成Jar文件。 至此,使用Eclipse打包Jar文件的过程已经完成。打包得到的...
- 故障排查:当遇到运行时异常或性能问题时,查看底层字节码有助于找出问题所在。 - 学习第三方库:通过查看库的源代码,可以帮助理解其工作原理。 - 开源项目无源码:某些开源项目可能只提供了.jar文件,使用反...
在压缩包子文件的文件名称列表中,只提供了"2"这一项,这可能是由于隐私保护或误输入导致的,正常情况下,这里应该列出jar包内的具体文件名。通常,一个jar文件可能包含以下结构: - 类文件(.class) - 资源文件...
- 调试:当遇到异常或错误时,查看对应的类文件和资源,找出问题所在。 - 学习:研究开源项目,理解代码实现和架构。 - 安全分析:检查潜在的恶意代码或病毒。 - 更新资源:有时,你可能需要替换或添加新的资源到....
2. **编辑Manifest文件**:默认情况下,Eclipse生成的Manifest文件可能缺少`Class-Path`属性,这将导致运行时找不到外部库。因此,需要手动添加`Class-Path`行,列出所有依赖的外部库路径,例如: ``` Manifest-...
1. **打开存放目录**:打开 JAR 文件所在的目录,确保所有相关的配置文件(如 XML 配置文件、日志配置文件等)和依赖的 JAR 包都位于同一目录下。 2. **运行程序**:在命令行中切换到该目录,并执行以下命令来运行 ...
2. **添加JAR到项目**:将"JAVA2DB2jar包"解压,找出包含DB2 JDBC驱动的JAR文件,然后将其添加到你的Java项目的类路径中。这可以通过IDE(如Eclipse、IntelliJ IDEA)的设置完成,或者在命令行编译时使用`-cp`或`-...
Maven提供了内置的目标来构建JAR包。最常用的是`package`目标,它会编译源代码,运行测试,并打包成可部署的形式。在命令行中,你可以输入以下命令来执行这个目标: ``` mvn package ``` 4. **配置JAR插件**: ...
【dex2jar_2.0】是一个针对Android应用开发中的重要工具,主要用于处理Dalvik执行文件(.dex)与Java字节码(.class)之间的转换。在Android系统中,应用的代码通常被编译成.dex格式,这是一种优化过的字节码格式,...
- fatjar是Java项目的一种打包方式,它可以将主程序以及所有依赖的jar包一起打成一个单独的jar文件。 - 这种打包方式特别适合于微服务或者独立运行的应用程序,能够简化部署过程,避免因缺少依赖而导致的问题。 2...
本篇文章将详细探讨如何找出Web程序依赖的所有JAR文件,以及为什么这样做至关重要。 首先,我们需要理解Web应用程序的结构。一个典型的Web应用由多个组件组成,包括Servlet、JSP、JavaBeans、以及其他第三方库。...