Which 1.1 build: 9470 released: 2012-05-07 Searches for exes and dlls on the path and tells you where it found them and what type they are.. Copyright: (c) 2012 Canadian Mind Products. Java application. Download from: http://mindprod.com/products1.html#WHICH ===> Free <=== Full source included. You may even include the source code, modified or unmodified in free/commercial open source/proprietary programs that you write and distribute. May be used freely for any purpose but military. For more details on this restriction, see http://mindprod.com/contact/nonmil.html If you include any Canadian Mind Products code in your own applications, your app too must be labeled non-military use only. All Java jars and source code are included. ---- Prerequisites: This program runs under any OS, (e.g. Win2K/XP/Vista/W7x86/W7-64/OSX/Linux/Solaris/AIX...) so long as you have <><> Java version 1.6 <><> or later installed (32-bit or 64-bit Java). See http://mindprod.com/jgloss/installingjava.html for details. ---- Installing on a PC: Download source and compiled class files to run on your own machine as an application. First install a recent Java JDK or JVM. See http://mindprod.com/jgloss/installingjava.html. To install, extract the zip download with WinZip (or similar unzip utility) into any directory you please, often J:\ -- ticking off the "use folder names" option. To run as an application,type: java -ea -jar J:\com\mindprod\which\which.jar {put any parms here} adjusting as necessary to account for where the jar file is. ---- Installing on a MacIntosh: Use Safari to download source and compiled class files to run on your own machine as an application. Safari will automatically unpack the zip into ~/Downloads (version 10.5) [or on the Desktop (version 10.4 and earlier)]. First install a recent Java JDK or JVM. See http://mindprod.com/jgloss/installingjava.html. You may optionally move the download tree to a permanent home. I don't have a MacIntosh, just a PC, so I can't test my Java programs for Mac compatibility. In theory they should work without problems, but in practice that does not always happen. If you have problems please, let me know, preferably with screenshots and complete verbatim error messages. To run as an application, without parameters, just double click the jar file. To run as an application with parameters, in bash shell type: open Terminal.app cd ~/Desktop java -ea -jar com/mindprod/which/which.jar {put any parms here} adjusting as necessary to account for where the jar file is. ---- Rebuilding: The zip already contains the necessary class and jar files, so unless you modify the program, there is no need to recompile the source or rebuild the jar. Configure.java basedir="E:/" in rebuild.xml to the drive where your files are. Use ANT and rebuild.xml, not build.xml, to recompile and recreate the jar. ---- Use: Which is a Java utility for Windows that searches the path and tells where it finds a given exe or dll. It further tells you what type of exe/dll it is, i.e. DOS 16-bit, Windows 16-bit, Windows 32-bit, Windows AMD 64-bit, Windows Itanium 64-bit, Jet 32-bit or Jet 32-bit that is out of date, and needs to be recompiled for the latest runtime. If you use the Jet version you use by typing: Which.exe someprog.exe or Which.exe somedll.dll on the comand line. If you have *.jar set up as an executable extension you can type which.jar someprog.exe Otherwise you will have to type the verbose: java.exe -jar which.jar someprog.exe It sets the retcode depending on what it found: retcode Type 8 DOS 16-bit 16 Windows 16-bit 32 Windows 32-bit 33 Windows 32-bit Jet 34 Windows 32-bit Jet, out of date 64 Windows AMD 64-bit 65 Windows AMD 64-bit Jet 66 Windows AMD 64-bit Jet, out of date 70 Itanium 64-bit 90 an unknown type 91 unable to find/read the file 99 syntax error You may have other utilities called Which. Make sure you are usingh this one. WHAT IS JET? JET is an AOT Ahead Of Time Java Compiler that converts Java class files into ordinary *.exe files that look like conventional C/C++ executables to the end user. They load and execute faster than ordinary Java jar files. They require a DLL run time to work. WHICH tells you which of your executables are JET-complied which require the JET runtime and which do not. WHICH warns you when you have JET-compiled executables that would benefit from recompiling for the latest runtime. You can read more about JET at http://mindprod.com/jgloss/jet.html WHICH itself is also provided in JET self-installing exe form, however for Windows only. If there is interest, I will also provide it for Linux too. Then you can use it with the abbreviated which.exe syntax instead of the verbose java.exe -jar which.jar syntax. By default, the application will end up in C:\Program Files (x86)\Canadian Mind Products\Which 1.0. To be useful, you will want the program on the path. There are three ways to do that: 1. Use regedit to create a registry entry of the form: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\which.exe (default) = C:\Program Files (x86)\Canadian Mind Products\Which 1.0\which.exe that puts which.exe on the aux App Path. 2. Add C:\Program Files (x86)\Canadian Mind Products\Which 1.0. to the PATH variable in your system environment. 3. Copy C:\Program Files (x86)\Canadian Mind Products\Which 1.0\which.exe This is my first experiment with distributing JET files. If you have trouble, please let me know. ICON Why the clothesline icon? The clothes represent the various directories hanging off the path. ---- Version History: 1.0 2012-01-09 initial version. 1.1 2012-05-07 update Jet version signature. add debugging code. -30-