No installation. USB stick portable applications.
Swiss File Knife

a command line
multi function tool.

remove tabs
list dir sizes
find text
filter lines
find in path
collect text
instant ftp or
http server
file transfer
send text
patch text
patch binary
run own cmd
convert crlf
dup file find
md5 lists
fromto clip
hexdump
split files
list latest
compare dirs
save typing
trace http
echo colors
head & tail
find classes
dep. listing
speed shell
zip search
zip dir list

Depeche View
Source Research
First Steps

using vm linux

windows GUI
automation

the d3caster
java game engine

command line
file encryption

free external tools,
zero install effort,
usb stick compliant:

zip and unzip
diff and merge
reformat xml
reformat source

java sources

thread creation

cpp sources

log tracing
mem tracing
hexdump
using printf

articles

embedded
stat. c array
stat. java array
var. c array
var. java array
view all text
as you type
surf over text
find by click
quick copy
multi view
find nearby
fullscreen
bookmarks
find by path
expressions
location jump
skip accents
clip match
filter lines
edit text
highlight
load filter
hotkey list
receive text
send in C++
send in Java
smooth scroll
touch scroll
fly wxWidgets
fly over Qt
search Java

 
Bookmark on del.icio.us Bookmark on Google Add to Mr. Wong
Bookmark on digg.com Add to StumbleUpon Bookmark on Yahoo

Find class files in a directory tree full of .jar's

with a free open source tool for the Windows command line, Mac OS X Terminal or Linux shell.
- download the free Swiss File Knife Base from Sourceforge.
- open the Windows CMD command line, Mac OS X Terminal or Linux shell.
- OS X : type mv sfk-mac-i686.exe sfk and chmod +x sfk then ./sfk
- Linux: type mv sfk-linux.exe sfk    and chmod +x sfk then ./sfk
  OS X and Linux syntax may differ, check the help within the tool.
SFK The Book - Infinite Command Line Power.

imagine you are evaluating an open source package named "foobox", and try to compile an example source like this:

   javac org\foobox\examples\barmodel\HelloWorld.java

getting an error:

      org\foobox\barmodel\Driver.java:38: package org.barbox.util does not exist

obviously, some .class files or .jars are missing in the classpath. but how do you find out instantly where "barbox" classes are located?

download the free swiss file knife, then type in the package root directory:

   sfk list -zip . >lslr

this creates an index text file "lslr", containing

  • all filenames in the current directory tree (and all subdirectories)
  • all filenames within all .jar and .zip files
now you can search this index in realtime, e.g. by
   sfk find lslr barbox util

creating output like this:

   external\BarBox-0.9-dev.jar\org/barbox/util/
   external\BarBox-0.9-dev.jar\org/barbox/util/BoundingBox.class
the result: classes with the package "org.barbox.util" are located within external\BarBox-0.9-dev.jar, so add this to your compilation classpath.

this is a first solution, but it can be done even more easily,
through creating an sfk alias called "gls!":

   sfk alias gls! = "sfk list -zip . >lslr & sfk find lslr"
(windows syntax. the linux shell may need adaptions concerning "!" and "&".)

gls stands for "grep the lslr index". (sfk will create a small batch file from the above, adding things like %1 %2 %3 automatically.) now, the first time you enter a new package's main directory, type for example

   gls! barbox util

which will

  • create the very detailed index file "lslr"
  • search instantly for the words "barbox" AND "util" accross this index
all in one step. But the next time you search further classes, you don't have to recreate the lslr index file, so create another alias:
   sfk alias gls = sfk find lslr
which simply searches instantly in the existing lslr.
 

instant interface listing with javap

staying with above example, if you know there is a BoundingBox.class, how do you turn the line

   external\BarBox-0.9-dev.jar\org/barbox/util/BoundingBox.class
(as extracted from lslr) into a command

      javap -classpath external\BarBox-0.9-dev.jar org.barbox.util.BoundingBox

to get the interface of BoundingBox listed instantly? create another alias, "javap!" this way (windows syntax example; type all in one line):

   sfk alias javap! "sfk echo %1 +filt -rep \"_.jar\_.jar _\"
      -rep _/_._ -rep _.class__ -blocksep \" \" 
      -form \"javap -classpath $col1 $col2\" +run $text -yes"
then, if "external\BarBox-0.9-dev.jar\org/barbox/util/BoundingBox.class" is listed in the command shell, double-click on it (provided that QuickEdit and Insert is configured ON with your shell), press right button to copy to clipboard. type
   javap!
and press right mouse button again to paste the copied text:

      javap! external\BarBox-0.9-dev.jar\org/barbox/util/BoundingBox.class

press ENTER, and the class interface should be listed.

further reading:

      how to list nested .zip and .jar contents everywhere in a directory tree.


 
sfk is a free open-source tool, running instantly without installation efforts. no DLL's,
no registry changes - just get sfk.exe from the zip package and use it (binaries for
windows, linux and mac are included).

read more about all sfk functions here.

Download the free Depeche View Lite Text Search Tool