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:in
(“bin” being an old name for binary programs; by
tradition all of one’s own programs go there). Just add this to
your PATH setting, either in your autoexec.bat
file or in your Control Panel settings. Copy
jr.bat
into this directory, and you’re
done! From then on you can just give commands such as jr
HelloWorld. The script will run javac
HelloWorld.java for you and, if there are no errors, it
will run java HelloWorld.
Feel free to improve upon this and to call it whatever you like.
3.12.107.31