본문 바로가기

회고록(TIL&WIL)

WIL 2022.12.06 ~ 2022.12.08 java 공부

배치스크립트

배치스크립트(cmd 환경에서 사용되는 스크립트 문법)
cmd에서 일시적으로 환경변수 path에 원하는 경로 추가하는 방법 ';' 으로 각 경로 구분, %변수명%으로 불러옴
echo = 값 출력하는 명령어 (println)
set path=C:\Program Files\Java\jdk1.8.0_202\bin;%path%

 

JAVA_HOME 변수 선언 하여 jdk 경로 지정 후 path에 추가하기

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_202\bin    
set path=%JAVA_HOME%;%path%

해당 코드를 javaStart.bat 파일 생성하여 추가
그리고 cmd에서 해당 파일을 실행만 해주면 실행은 단순히 dos 환경에선 파일명 입력해주면 실행됨
실행하면 위의 두 코드가 자동으로 실행되며 환경설정 됨
그 후 javac -version 으로 확인

echo dirname?
set /p dirname=
mkdir %dirname%
cd %dirname%

위의 커맨드 입력 시 해당 변수를 생성하는데 값을 입력받도록 할 수 있다.
입력 받은 값을 변수로 쓸 수 있어지기 때문에 입력한 값으로 파일이 생성되고 이동도 시킬 수 있다.

@echo off
cls

bat 파일 실행 시 입력되는 커맨드 보이지 않도록 @echo off
커맨드라인 클린을 위해 cls 입력

cmd 환경에서 comfile 시 한글 사용

윈도우 cmd 기본 인코딩설정은 ms949 이기 때문에 소스코드에 한글이 들어갈 경우 컴파일이 되지않는다.
방법 1. 컴파일 때 인코딩 방식 변경

javac -encoding utf8 Ex02.java

방법 2. 소스코드내의 한글을 유니코드로 혹은 16진수 등으로 작성하게되면 소스코드에는 한글이 없기때문에 컴파일이 진행된다.

ch1 = '\uac00';
ch1 = 0xac00;
ch1 = 44032;

자바 기본 공부 내용

실수연산은 최대한 피해라 -> 신뢰성이 무너지기 때문이며 웬만하면 정수로 연산 후 실수화 하는 것이 좋다.
실행만한다면 class 파일만 공유하면되고 class 파일은 열어도 알아볼 수 없다. 그러니 소스코드를 공유하는 경우에는
class 파일은 제외하고 java 파일만 공유해야한다.
해당 경로로 이동하여서 아래의 cmd 커맨드를 이용해서 클래스 파일들을 지울 수 있다.

del *.class

조건문은 다른 언어 환경에서 if문만 있는 경우가 있기 때문에 if 만 사용하는 것이 도움이 될 것.

call by value VS call by reference 관련 내용 정리해서 메일 발송

컴파일된 java class 파일을 실행시키기 위한 배치스크립트 작성

student.bat 파일 생성하여 아래 코드 추가

set path=%cd%\jre1.8.0_202\bin;%path%
cls
@echo off
java Ex10
PAUSE

맨아래에 PAUSE를 추가 시키면 BAT 파일을 더블클릭으로 실행해서 결과를 확인해볼 수 있다.

컴파일 배치스크립트를 이용한 자동화

// complie.bat
@echo off
set /p cname="class name?"
del %cname%.class
javac -encoding utf8 %cname%.java
cls
java %cname%

set /p 를 이용하여 클래스 명을 받아서 컴파일될 수 있도록 함
결과값의 신뢰성 보장을 위해서 기존의 컴파일 후 생성된 class 파일을 지우는 작업이 필요하다.
컴파일 실패할 경우 기존의 class 파일을 읽어들이기 때문

반복문 - for, while

문법을 위한 문법사용은 금지 내가 배웠으니까 써야지 같은 건 문제가 생길 수 있다.
실무에서는 while을 많이 쓰는 이유가 현실세계에서는 for문 처럼 카운터가 증감 하다가 해당 카운터가 되면 종료되는게아니라
행위가 계속되고 종료버튼을 눌리면 끝나는 식으로만 해석을 하기 때문에 무한루프 안에서 어떤 조건이 되었을 때 종료되는게 보다 현실적이다.
내 사는 일상생활을 코딩으로 바꿔볼줄 알아야한다. 그렇기에 자바가 쉽다는 것. 자바는 객체지향의 특성을 가지고 있기 때문에 바꿔볼 수 있다.