yoni

[04] 콘솔(cmd, command, shell) 실행을 위한 환경 변수 설정, Console에서의 컴파일 및 실행, 콘솔에서의 입력 본문

java of educational by contents

[04] 콘솔(cmd, command, shell) 실행을 위한 환경 변수 설정, Console에서의 컴파일 및 실행, 콘솔에서의 입력

yoni-1117 2018. 12. 1. 12:26
[01] 콘솔(cmd, command, shell)실행을 위한 환경 변수 설정

1. 설치시 환경 변수의 지정
   - 환경 변수의 설정
     . 경로와 경로사이는 ";"으로 구분을 해주어야 합니다.
     . 일반적으로 환경변수명은 대문자를 사용합니다.
     . 공백도 문자로 처리됩니다(주의).
 
   1) 탐색기 -> 컴퓨터 -> 속성 
   
 
   2) 고급 시스템 설정
   


   3) '고급' 탭을 선택합니다. [환경 변수] 버튼을 클릭합니다.
   

  4) 시스템 변수쪽 [새로 만들기] 버튼을 클릭합니다.
     만약 기존에 등록이되어 있다면 [편집] 버튼을 눌러 경로를 변경합니다. 
   
 
   5) 자바 설치 경로 지정
      - 공백이 포함되지 않도록 주의합니다.
      변수이름: JAVA_HOME      
      변수   값: C:\jdk1.8.0
      
 
 
   6) 콘솔(cmd, command, shell)에서 클래스를 실행시 class 파일을 찾는 경로
      - Eclipse는 자동으로 class를 찾아서 실행함.
      - '.': period(마침표) 주의, 검색 폴더를 현재 폴더로 지정
        변수이름: CLASSPATH  
        변수 값 : .;%JAVA_HOME%\lib\tools.jar  
                    또는
                    .;C:\jdk1.8.0\lib\tools.jar  

       
 

   7) 자바 관련 프로그램을 찾는 경로(javac.exe)
      - 모든 윈도우 프로그램들 실행 가능, 기존 등록된 값 지우지 말것. 
        변수이름: Path
        변수 값  : %JAVA_HOME%\bin; 기존의 값의 맨앞에 추가(중간에 있어도 상관 없음)
                     또는
                     C:\jdk1.8.0\bin;  
       
         

 
▷ Windows 7의 Path 환경 변수 기본 설정 내용:
%JAVA_HOME%\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;

▷ Windows 10의 Path 환경 변수 기본 설정 내용([텍스트 편집]버튼은 windows7과 같은 화면을 제공함):
%JAVA_HOME%\bin;C:\oraclexe\app\oracle\product\11.2.0\server\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\
   



 
- 설치 확인 :
   . 콘솔(도스창)을 닫고 cmd로 다시 콘솔을 열어 명령어 실행.
   . java -version: 자바를 실행하는 프로그램인 JRE 호출 명령어
   . javac.exe    : 개발시의 자바 컴파일러 호출 

- 실행 예
C:\Users\soldesk>java.exe -version     ← .exe는 생략 가능합니다.
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_92-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.64-b02, mixed mode)

 
C:\Users\soldesk>javac.exe
Usage: javac <options> <source files>
where possible options include:
  -g                         Generate all debugging info
  -g:none                    Generate no debugging info
  -g:{lines,vars,source}     Generate only some debugging info
  -nowarn                    Generate no warnings
.....
.....
.....
    
   

  
[02] Console에서의 컴파일 및 실행

1. 기본 콘솔 명령어
    - 대소문자를 구분하지 않습니다.

1) cd /: 그 드라이브의 최상위 폴더(Linux: cd ~)

2) dir: 목록 출력 (Linux: ls)

3) cd ai3: 경로 이동

4) cd.. : 상위 폴더로 이동(Linux: cd ..)

5) md console: console 폴더 생성(Linux: mkdir console)

6) rd console: console 삭제

7) type Test.java: 소스 출력

8) echo %CLASSPATH% → .;C:\jdk1.8.0\lib\tools.jar

   echo %JAVA_HOME% → C:\jdk1.8.0
   echo %Path%
 
 
2. Editplus 편집
- Editplus, 메모장등의 편집기를 이용합니다. 
- Editplus version 4의 경우 '인코딩' 형식을 'ANSI'로해야

  에러가 발생하지 않습니다.
  
▷ C:/작업 기준 폴더/console/Test1.java  <- 대소문자 주의
-------------------------------------------------------------------------------------
// 파일명: Test1.java
// 컴파일: javac.exe Test1.java
// 실행: java.exe Test1
class Test1 {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}
  
 
-------------------------------------------------------------------------------------
- Editplus에서의 저장 방법(한글이 깨지면 인코딩을 ANSI로 지정합니다.)

 

[실행 화면]
 
C:/작업 기준 폴더/console>javac.exe Test1.java  <-- .exe 생략 가능
 
C:/작업 기준 폴더/console>java.exe Test1.class
오류: 기본 클래스 Test.class을(를) 찾거나 로드할 수 없습니다.
 
- .class 확장자는 생략 할 것. 
C:/작업 기준 폴더/console>java.exe Test1         
Hello World!
 
- .exe 파일 확장자 생략 가능
C:/작업 기준 폴더/console>java Test1    
Hello World!
  
  
 
[과제 1] Exam1.java 파일을 만들고 컴파일하세요.
- 클래스명과 파일명은 대소문자도 동일해야합니다.
 
[실행 화면]
Hello World! Exam1
 
 
 
[과제 2] Exam2.java 파일을 만들고 컴파일하세요.
- 클래스명과 파일명은 대소문자도 동일해야합니다.
 
[실행 화면]
Hello World! Exam2
 
 
 
[과제 3] Exam3.java 파일을 만들고 컴파일하세요.
- 클래스명과 파일명은 대소문자도 동일해야합니다.

[실행 화면]
Hello World! Exam3
 
 
 
[과제 4] Exam4.java 파일을 만들고 컴파일하세요.
- 클래스명과 파일명은 대소문자도 동일해야합니다.

[실행 화면]
Hello World! Exam4
 
 
 
[과제 5] Exam5.java 파일을 만들고 컴파일하세요.
- 클래스명과 파일명은 대소문자도 동일해야합니다.

[실행 화면]
Hello World! Exam5
 
 
 
[과제 6] Exam6.java 파일을 만들고 컴파일하세요.
- 클래스명과 파일명은 대소문자도 동일해야합니다.

[실행 화면]
Hello World! Exam6 
 
 
 
[03] 콘솔에서의 입력
     - java class가 실행될 때 데이터와 함께 실행 할 수 있습니다.
       예) java Travel  속초 설악산 삼척
                            [0]    [1]      [2]  

     - 기본적인 콘솔(터미널) 명령어
       cd /: 최상위 폴더 
       cd.. : 상위 폴더로 이동
       cd bin : bin 폴더로 이동
       dir  :  폴더나 파일 목록 출력
           

1. 콘솔에서의 문자열 입력

[실행 화면]

/console>java Travel 삼양목장 노고단 통영


추천 여행1: 삼양목장
추천 여행2: 노고단
추천 여행3: 통영
 
▷ Travel.java
-------------------------------------------------------------------------------------
 
public class Travel {
 
  public static void main(String[] args) {
    String trip1 = args[0];  // 첫번째 값
    String trip2 = args[1];  // 두번째 값
    String trip3 = args[2];  // 세번째 값
 
    System.out.println("추천 여행 1: " + trip1);
    System.out.println("추천 여행 2: " + trip2);
    System.out.println("추천 여행 3: " + trip3);
    
  }
 
}
 
 
 
-------------------------------------------------------------------------------------
   
  
2. 콘솔(cmd) 상에서의 숫자 데이터 입력
   - 자바 클래스 실행시 값을 전달 할 수 있습니다.
     숫자도 문자열로 변경되어 전달됨으로 계산시 숫자형태로 변환이 필요합니다.
   - 문자열을 정수로 변환
     예) int kor = Integer.parseInt("80");
          int eng = Integer.parseInt(args[0]);


          System.out.println(1+1+1);  → 3
          System.out.println("1" + "1" + "1");   → 111 
          System.out.println(Integer.parseInt("1") + Integer.parseInt("1"));  → 2

1) 기본 데이터 입력

[실행 화면]

 
/console>java Console.class 왕눈이 70 80 90  ← ERROR
  
/console>java.exe Console 왕눈이 70 80 90
왕눈이
240 / 80
  
/console>java Console 왕눈이 70 80 90
왕눈이
240 / 80
 
/console>java Console 아로미 100 92 84
아로미
276 / 92
  
▷ Console.java
-------------------------------------------------------------------------------------
 
public class Console {
 
  public static void main(String[] args) {
    // System.out.println(1+1+1); // 3
    // System.out.println("1" + "1" + "1"); // 111  
    // System.out.println(Integer.parseInt("1") + Integer.parseInt("1")); // 2
    
    // java.exe Console 왕눈이 70 80 90
     
 
 
    
 
  }
 
}
   
   
 
-------------------------------------------------------------------------------------


 


Comments