본문 바로가기

Java/기초

[Java] 자바개발환경, 프로그램 작성

1.  자바 개발도구(JDK) 

자바 프로그래밍을 하기 위해서는 JDK(Java Developmnet Kit)를 설치해야 한다. JDK를  설치하면 자바가상머신(Java Virtual Machine, JVM)과 자바클래스 라이브러리(Java API)외에 자바를 개발하는데 필요한 프로그램들이 설치된다.

1) AdoptOpenJDK(https://adoptopenjdk.net/)

  ① Hotspot(Oracle의 지원으로 OpenJdk.org가 주도)

  ② OpenJ9(IBM이 주도)

2) OpenJDK(https://openjdk.java.net/)

3) Oracle JDK

  ① Java SE 8: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 

  ② Java SE14 : https://www.oracle.com/kr/java/technologies/javase-downloads.html

설치 후 환경설정(Path), ...

 

JDK의 bin디렉토리에 있는 주요 실행파일들은 다음과 같다.

1) javac.exe : 자바 컴파일러, 자바소스코드를 바이트코드로 컴파일한다.

ex. c:\jdk\work>javac Oss.java

2) java.exe : 자바 인터프리터, 컴파일러가 생성한 바이트코드로 해석하고 실행한다.

ex. c:\jdk\work>java Oss

3) javap.exe : 역어셈블러, 컴파일된 클래스파일을 원래의 소스로 변환한다.

ex. c:\jdk\work>javap Oss > Oss.java

 

※ 참고 JDK 와 JRE

JDK : 자바개발도구(Java Development Kit, 개발자용)

JRE : 라이브러리, 각종 파일(사용자용)

JVM : 가산머신(프로그램 실행, OS/HW의 환경에 맞추어 프로그램 구동)

 

 

2.  자바로 프로그램 작성하기

모든 클래스가 main메서드를 가지고 있어야 하는 것은 아니지만, 하나의 Java 애플리케이션에는 main메서드를 포함한 클래스가 반드시 하나는 있어야 한다. main메서드는 Java 애플리케이션의 시작점이므로 main메서드 없이는 Java 애플리케이션은 실행될 수 없기 때문이다.

 

소스파일 작성 예

1) 올바른 작성 예

  • public class가 있는 경우, 소스파일의 이름은 반드시 public class의 이름과 일치해야한다.

  • public class가 하나도 없는 경우, 소스파일의 이름은 class이름 둘 다 가능하다.

2) 잘못된 작성 예

  • 하나의 소스파일에 둘 이상의 public class가 존재하면 안된다. 각 클래스를 별도의 소스파일에 나눠서 저장하던가 둘 중의 한 클래스에 public을 붙이지 않아야 한다.

  • 소스파일의 이름은 public class의 이름과 일치하지 않는다. 소스파일의 이름을 변경해야 한다.

  • 소스파일의 이름과 public class의 이름이 일치하지 않는다. 대소문자를 구분하므로 대소문자까지 일치해야한다. 그래서, 소스파일의 이름을 수정해야한다.

 

자주 발생하는 에러와 해결방법

1) cannot find symbol 또는 cannot resolve symbol : 지정된 변수나 메서드를 찾을 수 없다.

2) ' ; ' expected : 세미콜론(' ; ')이 없다는 뜻이다.

3) Exception in thread "main" java.lang.NoSuchMethodError : main : main 메서드를 찾을 수 없거나 메서드의 선언부 'public static void main(String[] args)'에 오타가 존재하는 경우 발생한다.

4) Exception in thread "main" java.lang.NoClassDefFoundError : Oss : 'Oss라는 클래스를 찾을 수 없다.'는 뜻이다. 클래스 'Oss'의 철자, 특히 대소문자를 확인해보고 이상이 없으면 클래스파일(*.class)이 생성되었는지 확인한다.

5) illegal start of expression : 문장(또는 수식, expression)의 앞부분이 문법에 맞지 않다는 의미이다. 수식이나 if문, for문 등에 문법적으로 오류가 있을 때 또는 public이나 static과 같은 키워드를 잘못 사용한 경우에도 발생한다.