•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the Java section within the Software Development category of DaniWeb, a massive community of 391,919 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 3,707 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Java advertiser: Lunarpages Java Web Hosting
Hi *,
Here is a small program I had created to search for a given .class file within given CLASSPATH.
It is primarily used in our project on test machines where lotsa ppl put lotsa patches in lotsa paths/jars and finally end up wondering which class file is being used.
This tool a tool searches for a given class file in given classpath and it:
- Gives path where the file was found first.
- Gives a list of paths in which file was found.
- Validates all the paths put in your CLASSPATH.
- Works on Unix and Windows.
E.g. :
smlcad@(om2_kash_src)> java FindClass
Usage:
java -cp <classpath-to-search> FindClass <class-to-search>
E.g.
java -cp $CLASSPATH FindClass ca.siemens.tic.smlc.lt.api.rtp.Log
OR
execRTPenv java FindClass ca.siemens.tic.smlc.lt.api.rtp.Log
smlcad@(om2_kash_src)> java FindClass ca.siemens.tic.smlc.lt.api.rtp.Log
Trying to search ca.siemens.tic.smlc.lt.api.rtp.Log
Searching in 1: "." *****
Searching in 2: "/vobs/projects/smlc_src/rtp/java/classes" *****
Searching in 3: "/vobs/devtools/junit3.8.1/junit.jar"
Searching in 4: "/opt/iona"
Searching in 5: "/opt/iona/lib/art/omg/5/omg.jar"
Searching in 6: "/opt/smlc/lib/fwk_intf.jar"
Searching in 7: "/etc/opt/iona/domains/orbixsmlcpt3"
Searching in 8: "/opt/SMAW/SMAWrtpap/libexec/ApacheJServ.jar"
Searching in 9: "/opt/SMAW/SMAWrtpap/libexec/gnujsp10.jar"
Searching in 10: "/opt/SMAW/SMAWrtpap/libexec/servlet-2.0-plus.jar"
Searching in 11: "/opt/SMAW/SMAWrtp/lib/RtpAdmServer.jar"
Searching in 12: "/opt/SMAW/SMAWrtp/lib/RtpAdmGuiJspUtil.jar"
Searching in 13: "/opt/SMAW/SMAWrtp/lib/RtpAdmAppExt.jar" *****
Searching in 14: "/opt/SMAW/SMAWrtp/lib/RtpAdmAppFallback.jar"
Searching in 15: "/opt/SMAW/SMAWrtp/lib/gnu-regexp.jar"
Searching in 16: "/opt/SMAW/SMAWrtp/lib/RtpAudMgr.jar"
Searching in 17: "/opt/SMAW/SMAWrtp/lib/RtpAudRecUtil.jar"
Searching in 18: "/opt/SMAW/SMAWrtp/lib/RtpRecMgr.jar"
Searching in 19: "/opt/SMAW/SMAWrtp/lib/RtpCleanupUpd.jar"
Searching in 20: "/opt/SMAW/SMAWrtp/lib/RtpTcnShow.jar"
Searching in 21: "/opt/SMAW/SMAWrtp/lib/jce1_2_1.jar"
Searching in 22: "/opt/SMAW/SMAWrtp/lib/sunjce_provider.jar"
Searching in 23: "/opt/SMAW/SMAWrtpjr/lib/tools.jar"
Searching in 24: "/export/home/oracle/products/9.2.0/jdbc/lib/classes111.zip"
Searching in 25: "/opt/SMAW/SMAWrtp/lib/RtpAdmAppExt.jar" *****
Results:
Following paths do not exist OR are not readable !
5: "/opt/iona/lib/art/omg/5/omg.jar"
6: "/opt/smlc/lib/fwk_intf.jar"
7: "/etc/opt/iona/domains/orbixsmlcpt3"
19: "/opt/SMAW/SMAWrtp/lib/RtpCleanupUpd.jar"
21: "/opt/SMAW/SMAWrtp/lib/jce1_2_1.jar"
22: "/opt/SMAW/SMAWrtp/lib/sunjce_provider.jar"
23: "/opt/SMAW/SMAWrtpjr/lib/tools.jar"
First found in: 1: "./"
Also found in following 2 path(s):
2: "/vobs/projects/smlc_src/rtp/java/classes/"
13: "/opt/SMAW/SMAWrtp/lib/RtpAdmAppExt.jar"
25: "/opt/SMAW/SMAWrtp/lib/RtpAdmAppExt.jar"
smlcad@(om2_kash_src)>
Known problem:
Doesn't work with ALL versions of Java. If you test of future versions please do comment and let other know the results.
Here is a small program I had created to search for a given .class file within given CLASSPATH.
It is primarily used in our project on test machines where lotsa ppl put lotsa patches in lotsa paths/jars and finally end up wondering which class file is being used.
This tool a tool searches for a given class file in given classpath and it:
- Gives path where the file was found first.
- Gives a list of paths in which file was found.
- Validates all the paths put in your CLASSPATH.
- Works on Unix and Windows.
E.g. :
smlcad@(om2_kash_src)> java FindClass
Usage:
java -cp <classpath-to-search> FindClass <class-to-search>
E.g.
java -cp $CLASSPATH FindClass ca.siemens.tic.smlc.lt.api.rtp.Log
OR
execRTPenv java FindClass ca.siemens.tic.smlc.lt.api.rtp.Log
smlcad@(om2_kash_src)> java FindClass ca.siemens.tic.smlc.lt.api.rtp.Log
Trying to search ca.siemens.tic.smlc.lt.api.rtp.Log
Searching in 1: "." *****
Searching in 2: "/vobs/projects/smlc_src/rtp/java/classes" *****
Searching in 3: "/vobs/devtools/junit3.8.1/junit.jar"
Searching in 4: "/opt/iona"
Searching in 5: "/opt/iona/lib/art/omg/5/omg.jar"
Searching in 6: "/opt/smlc/lib/fwk_intf.jar"
Searching in 7: "/etc/opt/iona/domains/orbixsmlcpt3"
Searching in 8: "/opt/SMAW/SMAWrtpap/libexec/ApacheJServ.jar"
Searching in 9: "/opt/SMAW/SMAWrtpap/libexec/gnujsp10.jar"
Searching in 10: "/opt/SMAW/SMAWrtpap/libexec/servlet-2.0-plus.jar"
Searching in 11: "/opt/SMAW/SMAWrtp/lib/RtpAdmServer.jar"
Searching in 12: "/opt/SMAW/SMAWrtp/lib/RtpAdmGuiJspUtil.jar"
Searching in 13: "/opt/SMAW/SMAWrtp/lib/RtpAdmAppExt.jar" *****
Searching in 14: "/opt/SMAW/SMAWrtp/lib/RtpAdmAppFallback.jar"
Searching in 15: "/opt/SMAW/SMAWrtp/lib/gnu-regexp.jar"
Searching in 16: "/opt/SMAW/SMAWrtp/lib/RtpAudMgr.jar"
Searching in 17: "/opt/SMAW/SMAWrtp/lib/RtpAudRecUtil.jar"
Searching in 18: "/opt/SMAW/SMAWrtp/lib/RtpRecMgr.jar"
Searching in 19: "/opt/SMAW/SMAWrtp/lib/RtpCleanupUpd.jar"
Searching in 20: "/opt/SMAW/SMAWrtp/lib/RtpTcnShow.jar"
Searching in 21: "/opt/SMAW/SMAWrtp/lib/jce1_2_1.jar"
Searching in 22: "/opt/SMAW/SMAWrtp/lib/sunjce_provider.jar"
Searching in 23: "/opt/SMAW/SMAWrtpjr/lib/tools.jar"
Searching in 24: "/export/home/oracle/products/9.2.0/jdbc/lib/classes111.zip"
Searching in 25: "/opt/SMAW/SMAWrtp/lib/RtpAdmAppExt.jar" *****
Results:
Following paths do not exist OR are not readable !
5: "/opt/iona/lib/art/omg/5/omg.jar"
6: "/opt/smlc/lib/fwk_intf.jar"
7: "/etc/opt/iona/domains/orbixsmlcpt3"
19: "/opt/SMAW/SMAWrtp/lib/RtpCleanupUpd.jar"
21: "/opt/SMAW/SMAWrtp/lib/jce1_2_1.jar"
22: "/opt/SMAW/SMAWrtp/lib/sunjce_provider.jar"
23: "/opt/SMAW/SMAWrtpjr/lib/tools.jar"
First found in: 1: "./"
Also found in following 2 path(s):
2: "/vobs/projects/smlc_src/rtp/java/classes/"
13: "/opt/SMAW/SMAWrtp/lib/RtpAdmAppExt.jar"
25: "/opt/SMAW/SMAWrtp/lib/RtpAdmAppExt.jar"
smlcad@(om2_kash_src)>
Known problem:
Doesn't work with ALL versions of Java. If you test of future versions please do comment and let other know the results.
import java.io.File; import java.net.InetAddress; import java.net.URL; import java.net.URLClassLoader; import java.util.StringTokenizer; import java.util.Vector; public class FindClass { public static void main(String[] args) throws Exception { String javaVer = System.getProperty("java.version") ; if( javaVer.startsWith("1.4") ) { log( "\n\nSorry somehow this program doesn't work with Java 1.4XXX !\nIf you're using \n\"execRTPenv java FindClass...\"\nthen you can try\n\"execRTPenv /vobs/devtools/java_sdk/bin/java FindClass...\".\n\n" ) ; System.exit(0); } String classToFind = null ; if( 0 == args.length ){ log("Usage:\n\tjava -cp <classpath-to-search> FindClass <class-to-search>\n\n\tE.g.\n\t\tjava -cp $CLASSPATH FindClass ca.siemens.tic.smlc.lt.api.rtp.Log\n\n") ; System.exit(1) ; } else classToFind = args[0] ; log("\nTrying to search " + classToFind ) ; log("\n") ; try { StringTokenizer st = new StringTokenizer(System.getProperty("java.class.path"), System.getProperty("path.separator") ) ; int totalPaths = st.countTokens() ; Vector foundPaths = new Vector() ; Vector erroredPaths = new Vector() ; String thisPath = null ; for( int i = 0; i < totalPaths; i++ ) { thisPath = st.nextToken() ; System.out.print( "Searching in " + Integer.toString(i+1) + ": \"" + thisPath + "\"") ; File thisPathFile = new File(thisPath) ; String checkStr = "OK" ; if( !thisPathFile.exists() || !thisPathFile.canRead() ) { erroredPaths.add(Integer.toString(i+1) + ": \"" + thisPath + "\"") ; log( "" ) ; continue ; } if( thisPathFile.isDirectory() && thisPath.charAt(thisPath.length()-1) != '/' ) { thisPath = new String( thisPath + '/' ) ; } else if ( thisPathFile.isFile() && thisPath.charAt(thisPath.length()-1) == '/' ) { thisPath = thisPath.substring( 0, thisPath.length()-1 ) ; } URL thisURL = new URL("file", InetAddress.getLocalHost().getHostName(), thisPath.trim() ) ; URLClassLoader ul = new URLClassLoader( new URL[] { thisURL }, null ) ; //log( ul.getURLs() ) ; try { ul.loadClass(classToFind) ; //log("-->" + thisPath) ; log( " *****" ) ; foundPaths.add( Integer.toString(i+1) + ": \"" + thisPath + "\"" ) ; } catch( ClassNotFoundException e ) { log( "" ) ; } } log("\n\nResults:\n") ; if(erroredPaths.size() > 0 ) { log( "Following paths do not exist OR are not readable !" ) ; for(int j = 1; j < erroredPaths.size(); j++ ) log( "\t" + erroredPaths.get(j).toString() ) ; } if( foundPaths.size() == 0 ) { log( "\nSorry Couldn't find given class in given CLASSPATH." ) ; } else { if( foundPaths.size() > 1 ) { log( "\nFirst found in: " + foundPaths.get(0) ) ; log( "Also found in following " + Integer.toString(foundPaths.size()-1) + " path(s): " ) ; for(int j = 1; j < foundPaths.size(); j++ ) { log( "\t" + foundPaths.get(j).toString() ) ; } } else log("\nFound only in: " + foundPaths.get(0) ) ; } log("\n") ; } catch( Exception e ) { log( e ) ; } } public FindClass() { } public static void log( Throwable e ){ System.out.println( e.getMessage() ) ; e.printStackTrace() ; } public static void log( String s ){ System.out.println( s ) ; } public static void log( URL[] s ){ for(int i = 0 ; i< s.length; i++ ) System.out.println( s[i] ) ; } }
Post Comment
•
•
•
•
DaniWeb Marketplace (Sponsored Links)