Professional Documents
Culture Documents
Java Java
Java
http://www.javasoft.com Java 2 SDK
HelloWorld.java
Java Java
Java :
javac HelloWorld.java
HelloWorld.class:
java HelloWorld
java.exe :
Exception in thread "main" java.lang.NoClassDefFoundError:HelloWorld
(console)
Java Java
: Hello World Java
Java
Java
Java
JBuilder
Java package import
JBuilder
package import
Java Java package
import Java
Java 2 SDK d:\jdk1.3.0_01 (! package
import JDK JDK 1.4.x
Java 2 SDK)
D my
(d:\my)
:
d:\my
java javac
:
java.exe javac.exe
:
path d:\jdk1.3.0_01\bin
java javac
:
path
JDK <Windows >\system32
java.exe<Windows >\system32 Windows
path
java.exe javac.exe
d:\my :
A.java
public class A
{
public static void main(String[] args)
{
B b1=new B() ;
b1.print() ;
}
}
B.java
public class B
{
public void print()
{
System.out.println("package test") ;
}
}
:
javac A.java
d:\my
A.class B.class
javac.exe Java make
A.java B
B.java javac B.java B.java
A A.java
:
java A
package test
JDK JRE
<JRE >\lib\rt.jar
( Java Java
javac.exe JRE rt.jar ?
)
Java verbose :
java.exe JDK
JRE <JRE
>\lib\rt.jar
:
:
A.java
import edu.nctu.* ;
public class A
{
public static void main(String[] args)
{
B b1=new B() ;
b1.print() ;
}
}
B.java
package edu.nctu ;
public class B
{
public void print()
{
System.out.println("package test") ;
}
}
:
javac A.java
edu.nctu package
Java B edu.nctu
B.java
package edu.nctu ;
A B A.java
import edu.nctu.* ;
d:\my edu
edu nctu B.java
d:\my\edu\nctu
javac verbose A.java
:
d:\my B.java
A.java
B.java B.java package
edu\nctu
!! d:\my A.class
d:\my\edu\nctu B.class:
java A
package test
d:\my\edu\nctu
B.class
java A
:
:
javac.exe
( B.java
d:\my d:\my\edu\nctu )
javac.exe
d:\my\edu\nctu
B.class d:\my :
java A
package test
javac A.java
A
bad class file: .\B.class
class file contains wrong class: edu.nctu.B
d:\my B.class
d:\my\edu\nctu B.java
d:\my\edu\nctu B.class
javac A.java
:
:
:
javac.exe
(
B.class d:\my d:\my\edu\nctu )
java.exe Java
:
d:\my edu
(!)d:\
javac A.java
edu.nctu package
javac classpath d:\ A.java
d:\my A.class d:\edu\nctu
B.class
java A
java.exe edu\nctu
B.class
:
:
C xyz.pqr.abc
xyz\pqr\abr C.java C.class
javac.exe java.exe
? : java.exe
javac.exe -classpath
edu\nctu d:\:
javac classpath d:\ A.java
:
javac classpath . A.java
java classpath . A
-classpath
javac.exe d:\my
d:\my edu\nctu
java.exe
edu\nctu
javac.exe d:\my\edu\nctu B.java B.class
d:\my\edu\nctu ()
classpath d:\ javac.exe
d:\ d:\edu\nctu java.exe
classpath d:\
: javac.exe classpath d:\ java.exe
classpath d:\;.classpath d:\?
-classpath AppClassLoader
A.class (
.) AppClassLoader
A.java
AppClassLoader
-classpath AppClassLoader
B.class B.java javac.exe
-classpath ; java.exe
AppClassLoader
java.exe cp(classpath)
CLASSPATH
set CLASSPATH=d:\;.
:
javac A.java
java A
CLASSPATH
java.exe javac.exe classpath
classpath
CLASSPATH classpath
JAR ZIP
Winzip
B.java edu.zip edu.zip d:\edu.zip
:
:
:
ZIP classpath
java.exe javac.exe classpath
ZIP java.exe javac.exe
java.exe
javac.exe
CLASSPATH ZIP
ZIP ?
JAR (.jar) JAR
ZIP JAR ?
()
JAR
CLASSPATH classpath JAR
java.exe javac.exe
(<JRE
\lib\ext )
CLASSPATH classpath
JAR ( ZIP )
B.java d:\edu\nctu d:\my\edu\nctu
:
javac classpath d:\ A.java
d:\edu\nctu B.java
:
javac classpath .;d:\ A.java
d:\my\edu\nctu B.java
CLASSPATH classpath JAR
()
classpath
:
JAVA d:\my
A.java:
A.java
package edu.nctu.mot ;
public class A
{
public static void main(String[] args)
{
System.out.println("I'm A") ;
}
}
A edu.nctu.mot
:
javac A.java
? ? A.java
B.java A.java edu.nctu.mot B.java
edu.nctu B.java
javac.exe make B.java( A
B) A.java make
( B.java
CLASSPATH
classpath )
:
java A
\edu\nctu\mot
A.java d:\my A.java A.class
javac A.java
javac.exe ?
?
javac.exe A.java make
javac.exe
:
1 javac edu.nctu.mot.A.java
4 javac d:\my\edu\nctu\mot\A.java
Java
A.java
javac.exe
make
:
java A
java.exe A
:
1 java edu.nctu.mot.A
java.exe
: CLASSPATH classpath
\edu\nctu\mot A.class
CLASSPATH classpath
:
java classpath . edu.nctu.mot.A
d:\my java.exe
d:\my\edu\nctu\mot A.class
java classpath d:\ edu.nctu.mot.A
d:\edu\nctu\mot A.class
package
import :
1. JAVA package
2. java.exe javac.execlasspath
CLASSPATH
JAR package
Java
java.exe jvac.exe
Java
package import MIDlet
preverify.exe JNI javah.exe
package import
package import
Java
- package import Class Not
Found Exception
?
package import
package
Java
(Compile-time) Package
Package
:
: src
: comtime : outer
: com
: CA.java
: CA.java
: edu : com
: CA.java
: CA.java
: Main.java
: CA.java
:
src\comtime\Main.java
public class Main
{
public static void main(String args[])
{
CA ca = new CA() ;
}
}
src\comtime\CA.java
public class CA
{
}
src\comtime\edu\CA.java
package edu;
public class CA
{
}
src\comtime\com\CA.java
package com;
public class CA
{
}
src\outer\CA.java
package outer;
public class CA
{
}
src\com\CA.java
package com;
public class CA
{
}
src\comtime (:
package package
package
) src\comtime
javac Main.java (1)
package :
Main.java :
src\comtime\Main.java
import com.*;
import edu.*;
public class Main
{
public static void main(String args[])
{
CA ca = new CA() ;
}
}
import
package
(
package)-classpath .java
.class default package
src\comtime\CA.java NU.java
com.CA
Main.java src\com\CA.java
Main.java
src\comtime\Main.java
import com.*;
import edu.*;
import outer.*;
public class Main
{
public static void main(String args[])
{
CA ca = new CA() ;
}
}
javac Main.java (4)
:
outer
edu package
javac classpath ..;. Main.java (6)
package
package CA:
Main.java
src\comtime\Main.java
import com.CA;
import edu.*;
import outer.*;
public class Main
{
public static void main(String args[])
{
CA ca = new CA() ;
}
}
:
javac classpath .;.. Main.java (8)
src\comtime\com CA.java
java java
:
:(3)
1.
-
-classpath 1 .
CLASSPATH
CLASSPATH
.
-
-classpath
CLASSPATH
CLASSPATH
,
(.)
CLASSPATH -classpath
(7)(8):
:(7)(8)
(7) (8)
1 . 1 ..
2 .. 2 .
package:
: package
2.
import packagename.*; 1 D:\test
import packagename.classname 2 C:\p.jar
,packagename
./.
3.
,
:
javac classpath d:\test;c:\p.jar test.java
test.java
import A.B.* ;
import C.D ;
d:\test A\B
d:\test\A\B c:\p.jar
A\B package A.B does not
exist d:\test\C\D.class
d:\test\C\D.java( c:\p.jar )
package public( package
) cannot resolve
symbol
:(7)
1.
import packagename.classname
, 1 com.CA
2.
import packagename.*, 1 com.*
1 outer.*
.
import com.CA;
import edu.*
import outer.*
,
.
:
:
?
(packagename.classname)
Yes No
default package,
,
,
? ?
Yes No Yes No
, , Package
. .
(make) (make)
(1)(2)
(3)
com.CA ca = new com.CA() ;
(7)(8):
:package ()
Yes No
? ,
?
,
, ,
? .
(make)
(3)
import com.CA ;
(7) com.CA
CA
..\com\CA.class ..\com\CA.java src\com
CA (8) .\com\CA.class
.\com\CA.java src\comtime\com CA.java
(6)
:
src\comtime\Main.java
import com.CA;
import edu.CA;
import outer.*;
public class Main
{
public static void main()
{
CA ca = new CA() ;
}
}
Java :
1. import C/C++ include
2. import import x.y.*
Java
import java.*.*
?
Java import C/C++
namespace include
X.A X.B.C
import X.* ;
import X.B.* ;
:
C c1 = new C();
import X.* ;
C
import
javac.exe Hash
Table
package
import
package import :
: package
Make,
package ;
make()
package
make
src\com
javac CA.java
CA.java
src\com\CA.java
package test;
public class CA
{
}
package
package import
make
Java
Java Java class
.class (.java)
.class :
MultiClass.java
class A
{
class C
{
}
}
class B
{
public void test()
{
class D
{
}
}
}
MultiClass.java
:
A.class
A$C.class
B.class
B$1$D.class
MultiClass.java
Javac MultiClass.java
static link (.exe)
(Windows DLLUNIX share
object) Java
src\comtime\Main.java
import com.CA;
import edu.*;
import outer.*;
public class Main
{
public static void main(String args[])
{
CA ca = new CA() ;
}
}
src\comtime\com\CA.java
package com;
public class CA
{
}
(8)
src\ccomtime\Main.class src\comtime\com\CA.class
:
java Main (9)
CA.java :
src\comtime\com\CA.java
package com;
public class CA
{
public CA()
{
System.out.println(New CA) ;
}
}
src\comtime\com\CA.java CA.java
(9):
Main.java
CA.java
Java :
java verbose Main (10)
:
(Run-time) Package
Java
?
:
src\comtime\Main.class :
src\comtime\com\CA.class
Main.java import
(import
)Main.class CA
com/CA CA.class
package com\CA
,
.
,
.
,
Exception
(9) Main.class
-classpath CLASSPATH
.()
Main.class Main.class
.\Main.class Main.class
src\comtime Main.class
Main.class com/CA.\com\CA.class
CA.class CA.class com/CA
src\comtime\com
java classpath .. Main
:
Main
Main.class
package
import :
A.java
package edu.nctu.mot ;
public class A
{
public static void main(String[] args)
{
System.out.println("I'm A") ;
}
}
:
1 javac edu.nctu.mot.A.java
.
edu.nctu.mot.A.java
./
2 javac -classpath .\my\edu\nctu\mot A.java
.\edu\nctu\mot
A.java A.java make
A.java
3 javac -classpath d:\my\edu\nctu\mot A.java
d:\my\edu\nctu\mot
A.java A.java make
A.java
4 javac d:\my\edu\nctu\mot\A.java
:
1 java edu.nctu.mot.A
..
/.\edu\nctu\mot A.class
2 java -classpath .\edu\nctu\mot A
.\edu\nctu\mot
A.class A.class
edu.nctu.mot package
.\edu\nctu\mot\edu\nctu\mot
3 java -classpath d:\my\edu\nctu\mot A
d:\my\edu\nctu\mot
A.class A.class
edu.nctu.mot package
.\edu\nctu\mot\edu\nctu\mot
4 java d:\my\edu\nctu\mot\A
.
package import
Java
package import