Automating Compilation with jr
Problem
You get tired of typing javac and java commands.
Solution
Use my jr script.
Discussion
Although it may be tedious, there is some logic behind the fact that
the compilation command (javac,
jikes, etc.) requires you to include
the filename extension, and the running command
(java) requires you to omit the filename
extension -- you can’t type java
HelloWorld.class and have it run the
HelloWorld program from the current directory. The
compiler is actually reading a source file, while the
java command is running a class, a class that
might be located someplace in your CLASSPATH (see Section 2.6). It is common for JDK users to use a
batch script or command file to automate
this. Mine is called jr, for Java compile and
Run. The Unix version is jr, a
shell script:
javac $1.java && java $*
The $* gets expanded to include
$1 and any other arguments. The
MS-Windows version is jr.bat
:
javac %1.java if errorlevel 1 goto norun java %1 %2 %3 %4 %5 %6 :norun
For people using MS-Windows who have no experience using batch files
for compilation, fear not. You could just copy this
jr.bat file into the
JDKHOME/bin directory. But the problem then is
that when you deinstall that JDK version and install a new one,
you’d lose jr. What I usually do on
MS-Windows is this: just create a directory that won’t conflict
with anything else, such as C:\bin (“bin” being an old name for binary programs; by tradition all of one’s own programs go there). Just add this to your PATH ...