Java Programming from the Grounds Up
Running a Java Application
Now that we've stepped through Primes.java, the source code for our prime number generator, let's compile and run the application. You'll need javac, the Java compiler in the JDK, to compile the source code:
javac Primes.java
The Java compiler places each class in its own output file. Since Primes.java defined two classes--Primes and Mclass--compiling the source code will produce Primes.class and Mclass.class. Our examination of the source code showed that Mclass contained the main class method for this program. As a result, you'll need to run java, the Java interpreter in the JDK, on Mclass.class.
You'll also need to assign values for where the Primes application should start looking for primes and for how many primes it should find in total. If you wanted the Primes application to start at the number 14 and continue until 105 primes have been found, you'd enter at the command line:
java Mclass 14 105
As we've seen, it's not possible to execute Java source directly--it must be compiled into its bytecode format first. When a browser accesses a Java page, it receives and executes the bytecode stored in the .class file. Therefore, you'll need the Java Development Kit--or at least javac--to create Java content and Java Web pages.
What's less obvious is how our prime number generator makes use of Primes.class. As we've seen, Primes.class is created as a separate file from Mclass.class when Primes.java is compiled. When a browser or the Java interpreter reads in Mclass, it will discover unresolved references to the Primes class (and also to Java classes such as System). It then has to find the file Primes.class to resolve those references. The browser or Java interpreter makes use of class loading; it dynamically loads the Primes bytecode from the Primes.class file and also loads unresolved Java classes in the same way. If for some reason you had renamed Primes.class, the Java interpreter would be unable to continue; it would be unable to locate the resources it needed.
This proves to be particularly important when developing Java applets; all class files and subsidiary files, such as GIFs, referenced by an applet must follow a set of naming and organizational conventions, as our next example below shows.
NEXT
Mark Reynolds is a network protocol designer, Java programmer, computer animator, and fanatic mountaineer. He currently consults to Adaptive Optics Associates, a United Technologies company.
Reprinted from Web Developer® magazine, Vol. 2 No.1 Spring 1996 (c) 1996 internet.com Corporation. All rights reserved.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|