1. JDK : Java Development Kit
(회사마다 쓰는 버젼이 다르니, 설치시 버젼 주의 하기)
JavaSE(Standard Edition)
JavaEE(Enterprise Edition) : JRE -> JavaEE
JavaME(Micro Edition)
관공서(1.6)
개발(1.7)
자바10으로 변경을 하겠다는 이야기가 나오는 중
(java4 까지 따로 설치 했어야 했다)
JDK
---
JRE|
JVM|
----
java2
java4
JDK - 컴파일, 배포, 역컴파일 / exe실행파일
[javac(컴파일러 - binary 로 변경) , javap(binary를 자연어로 변경), javadoc(매뉴얼), jdb(
디버거_검수)]
JRE (Java Runtime Environment) 이것 때문에 이식성이 높다.
자바 실행 환경 syntex 예약어와 api를 가지고 있다.
개발의 기초가 되는 것들을 가지고 있다.
(JVM 포함되어 있다.)
JVM(Java Virture Machine)
jre
jvm
os
(jar/war 파일) -archive / exe파일 만들 수있음.
---
JRE|
JVM|
----
java5 이후 버전
JDK + JRE + JVM
콘솔에다 입력할 때, 필요한 API 가져다 쓰려고
업데이트 차이 / 버전 별로, 실행이 안될 수도 있다.
JRE 버젼차이
java 5
java 7
java 8
<계정명>
1. 한글이면 안됨(영문으로만 작성)
2. 공백 안됨
버전차이 컴파일 안됨.
2. 환경설정
- 편리하게
java5 이후, jdk를 사용하기 위해서(javac,javap, exe파일)
JDK 경로(path)
JAVA_HOME - Alias
classpath -> java2 ~ java4 까지 있었던, sun의 권고사항
왜 그랬냐면, rt.jar를 연결 시켜주기 위해서
* 이클립스는 javaw를 사용한다.
//핼리오스 이상 버젼에서는 , 환경변수 없어도 자동인식 한다!
c:\Java\jdk1.8.0_111\bin>javap java.lang.Object
Compiled from "Object.java"
public class java.lang.Object {
public java.lang.Object();
public final native java.lang.Class<?> getClass();
public native int hashCode();
public boolean equals(java.lang.Object);
protected native java.lang.Object clone() throws java.lang.CloneNotSupportedException;
public java.lang.String toString();
public final native void notify();
public final native void notifyAll();
public final native void wait(long) throws java.lang.InterruptedException;
public final void wait(long, int) throws java.lang.InterruptedException;
public final void wait() throws java.lang.InterruptedException;
protected void finalize() throws java.lang.Throwable;
static {};
}
환경변수
JAVA_HOME : C:\Java\jdk1.8.0_111
%JAVA_HOME%\bin;C:\ProgramData\Oracle\Java\javapath;%JAVA_HOME%bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\
SystemRoot -> C:\Windows\System32을 가리킴
C:\Java\jdk1.8.0_111\jre\lib
rt.jar (java archive)
3.컴파일
언어 2가지 형태 (컴파일 / 인터프리터)
고급언어를 기계어로 변역(BinaryCode) - bit연산 가능
인터프리터 - js , python, html
개발환경 / 실행환경
reference가 연결된 친구들은 영어가 보임(.class 볼때)
龕봅 4 N B? & * ()I ()Ljava/lang/Object; ()Ljava/lang/String; ()V (I)Ljava/lang/String; (J)V (JI)V (Ljava/lang/Object;)Z (Ljava/lang/String;)V <clinit> <init> @ Code Exceptions LineNumberTable Signature SourceFile StackMapTable append clone equals finalize getClass getName hashCode java/lang/Class $java/lang/CloneNotSupportedException "java/lang/IllegalArgumentException java/lang/Integer java/lang/InterruptedException java/lang/Object java/lang/StringBuilder java/lang/Throwable %nanosecond timeout value out of range notify notifyAll registerNatives timeout value is negative toHexString toString wait ! " # $ % ()Ljava/lang/Class; () Ljava/lang/Class<*>; -(Ljava/lang/String;)Ljava/lang/StringBuilder; ) - 6 , + 8. > 0 A 1 @ 3 9 3 ; 3 < 3 = 4 : 4 ? 4 B Object.java ! 3 ? % ) 6 7 . *+? ? ? @ ? / , < $? 4Y? J*? I? C? L? L*? F? E? L? K? ? ' ( -
2 - r 2 뵜 ? 0Y? D?? ? ? 0Y? D?? a@*? H? " ? ? ? ? $? (? ,? 1? 2 - " * ? H? ? ? 2 ? + 5 ? G? ) * M