[go: up one dir, main page]

0% found this document useful (0 votes)
185 views8 pages

10 Jar

JAVA applications are typically implemented as a set of JAVA objects. Each object has it's own JAVA file which compiles into its own CLASS file. Jar files can contain files and folders they can be digitally signed to verify the origin of the code in the file jar files can be "executed" as if they were a full fledged application.

Uploaded by

api-3811447
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
185 views8 pages

10 Jar

JAVA applications are typically implemented as a set of JAVA objects. Each object has it's own JAVA file which compiles into its own CLASS file. Jar files can contain files and folders they can be digitally signed to verify the origin of the code in the file jar files can be "executed" as if they were a full fledged application.

Uploaded by

api-3811447
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

JAR Files

and
JAVA Extensions

How To Make
Your JAVA Software
Feel Professional

The perception of (dis)order…

n When we create a JAVA application, it


is typically implemented as a set of
JAVA objects with some global POE
n Each object has it’s own JAVA file…
n … which compiles into it’s own CLASS file
n Most users are used to applications that
are a single file or button click away

Copyright 1999-2002 Simon Lok Reproduction and/or redistribution in whole or part without written authorization is expressively prohibited

1
Enter the JAR file

n JAR files are archive files, like ZIP files


n They can contain files and folders
n They are automatically “compressed”
n There are also some additional features
n JAR files can be digitally signed to verify
the origin of the code in the file
n JAR files can be “executed” as if they were
a full fledged application

Copyright 1999-2002 Simon Lok Reproduction and/or redistribution in whole or part without written authorization is expressively prohibited

The First Step…

n First thing you have to do is make sure


that you have got your Package right
n Remember to invert your domain name
to make globally unique package names
n package edu.columbia.cs.cgui.mars
n This will lead to a mess of directories
that… luckily RAD tools like Forte deals
with this auto-magically

Copyright 1999-2002 Simon Lok Reproduction and/or redistribution in whole or part without written authorization is expressively prohibited

2
Creating a JAR

n The jar tool works just like UNIX tar


n jar cvf MyApplication.jar file1 file2 …
n Typically you would change directory to
the root of your development
n jar cvf MyApplication.jar *
n The –C option allows more flexibility
n jar cvf MyApplication.jar –C /devel/root *
n Be careful of source code inclusion!
Copyright 1999-2002 Simon Lok Reproduction and/or redistribution in whole or part without written authorization is expressively prohibited

Creating a JAR

Copyright 1999-2002 Simon Lok Reproduction and/or redistribution in whole or part without written authorization is expressively prohibited

3
Viewing/Extracting a JAR

n JAR file contents can be viewed by:


n jar tvf MyApplication.jar
n The “t” stands for Table of Contents
n A JAR can also be extracted by using
the “x” command
n jar xvf MyApplication.jar
n This automatically overwrites existing files!

Copyright 1999-2002 Simon Lok Reproduction and/or redistribution in whole or part without written authorization is expressively prohibited

The Manifest

n If you create a JAR and view it, you will


see a file called MANIFEST.MF in the
table of contents
n This file is automatically created by the
JAR tool and contains special
information for the JAR
n To alter the manifest:
n jar cmvf manifest-addition MyApp.jar *

Copyright 1999-2002 Simon Lok Reproduction and/or redistribution in whole or part without written authorization is expressively prohibited

4
Manifest Manipulations

n Set the class with the point of entry


(main) for this application:
n Main-Class: PrimaryPointOfEntry
n You can execute a JAR file by using the
command “java –jar MyApplication.jar”
n The Win32 JRE allows “double clicking”
n Import other JAR files:
n Class-Path: place/OtherStuff.jar

Copyright 1999-2002 Simon Lok Reproduction and/or redistribution in whole or part without written authorization is expressively prohibited

Version Control

n Name: ThePackage/MyApplication/
Sealed: true
Implementation-Title: “My Stuff”
Implementation-Version: “build57”
Implementation-Vendor: “My Company”
n Requires all classes of this application
to be present in this JAR and saves
some descriptive information with it
Copyright 1999-2002 Simon Lok Reproduction and/or redistribution in whole or part without written authorization is expressively prohibited

5
Signed JARS

n Digital signatures verify the integrity and


source of the JAR
n Use the “keytool” to manipulate your
public and private keys
n Use “jarsigner” to actually sign the jar
n jarsigner will overwrite your existing JAR
file and replace it with the signed version

Copyright 1999-2002 Simon Lok Reproduction and/or redistribution in whole or part without written authorization is expressively prohibited

Remote JARs

n You can run remote JARs with the


JarRunner class…
n java JarRunner http://server/MyJar.jar
n The java.util.jar package has utilities to
download and use JAR files into your
current VM
n JarClassLoader(http://server/MyJar.jar);
n invokeClass(“TheClassName”, args);
Copyright 1999-2002 Simon Lok Reproduction and/or redistribution in whole or part without written authorization is expressively prohibited

6
JAVA Extensions

n The JRE can be extended using code


that you write in JAVA…
n A number of core technologies started out
as extensions to the JRE
n Commonly used extensions from Sun
include JAVAMail (to access email via
IMAP), JAVA3D (for 3D graphcs) and
JAXP (XML parsing and generation)

Copyright 1999-2002 Simon Lok Reproduction and/or redistribution in whole or part without written authorization is expressively prohibited

Your Own Extensions

n Create a JAR that contains your code


with the proper package statements
setup for a global namespace
n Put the JAR in JRE_HOME/lib/ext
n Win32 - c:\jdk1.3\jre\lib\ext\
n Linux - /opt/jdk1.3/jre/lib/ext/
n Solaris - /usr/java/jre/lib/ext/

Copyright 1999-2002 Simon Lok Reproduction and/or redistribution in whole or part without written authorization is expressively prohibited

7
Good Practices

n Globalize your namespace!


n Separate your executable into libraries
that can be reused and code for an
application (front end)
n Install your reusable code in jre/lib/ext
n Put your front-end code into a JAR with a
Main-Class attribute in the manifest
n Sign and seal all of your JARs
Copyright 1999-2002 Simon Lok Reproduction and/or redistribution in whole or part without written authorization is expressively prohibited

You might also like