컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post Perl/펄] 문자의 아스키 코드 (ASCII Code) 값 구하기; 아스키 번호를 문자로...DOS 배치파일] 다른 배치 파일로 GOTO 명령; 다른 파일 라벨로 이동 BATVMware용 리눅스(레드햇/우분투) 이미지(.ISO) 파일 다운로드는?배치파일(.BAT)로, 파일 출력, 텍스트 파일(Text File) 만드는 방법Excel/엑셀] MsgBox, Yes No Cancel 버튼 대화상자 만든 후, 결과 값...Excel/엑셀] VBA MsgBox (메시지 박스) 만들기; 메세지 상자 출력Perl/펄] 계속하려면 엔터 키를 누르십시오 (Press the Enter key to ...C언어] 화면 출력 잠시 정지시키기. 화면 일시 중지 함수 getch(); PauseC언어] 이진파일 쓰기/바이너리 파일 만들기 예제; Make, Write Binary Fi...C언어] 이진파일 읽기; 바이너리 파일 읽기전용으로 열기; Open, Read Binary...

Java/자바] 소스 컴파일 + 실행하기, 자동 배치파일(BAT)

Wednesday, November 15, 2006

jv.bat 이라는 배치파일로, 도스창(명령 프롬프트;cmd.exe)에서, 자바 소스의 컴파일과 실행을 동시에 할 수 있습니다.

자바를 커맨드라인에서 컴파일하고 실행하려면, 확장자를 붙이고 떼고 참 번거롭습니다. 그래서 이런 배치 파일을 만들었습니다.


자바 소스 컴파일한 후, 자동 실행하는 배치파일(BAT)


파일명: jv.bat
@echo off
setlocal

:: 상수 정의
set JAVA_CLASS_LIB=D:\myhome\java




:: 옵션 해석 (대소문자 구분함)
if "%1" == "-h"     goto HELP
if "%1" == "-help"  goto HELP
if "%1" == "--help" goto HELP

if "%1" == "-cc" goto CLASS_COMPILE
if "%1" == "-foo" goto FOO

if "%1" == "" (
  if not exist Foo.java goto HELP
  set FILE_NAME=Foo
) else (
  set FILE_NAME=%~n1
)


:: 컴파일
javac %FILE_NAME%.java


:: 컴파일 때 에러 있으면 종료
if not "%ERRORLEVEL%" == "0" (
  echo jv.bat: ERROR!
  goto :EOF
)


:: 컴파일된 자바 프로그램을 실행
:: 자바 프로그램에 최대 10개의 파라미터만 지정 가능한 한계 있음
shift
shift
java %FILE_NAME% %0 %1 %2 %3 %4 %5 %6 %7 %8 %9
goto QUIT




:HELP
echo.
echo ........................................................................
echo            [자바 소스 컴파일과 실행을 동시에 하는 배치 파일]
echo                                            http://mwultong.blogspot.com/
echo ........................................................................
echo.
echo 사용법: jv ^<자바 소스 파일명^>
echo 예  제: jv MyTest
echo.
echo 파일명의 대소문자를 구분함. 확장자는 붙이지 않아도 됨
echo.
echo 만약 파일명을 지정하지 않으면 기본값으로, Foo.java 를 컴파일
echo Foo.java 가 '현재 디렉토리'에 없으면, 이 도움말이 출력됨
echo.
echo.
echo.
echo 옵션 (대소문자 구분):
echo.
echo        -cc  : 클래스 라이브러리를 컴파일/재컴파일
echo        -foo : 테스트용으로 사용할 Foo.java 파일을 자동으로 생성.
echo               예제: jv -foo
echo.
echo ........................................................................
echo.
goto QUIT




:: 테스트용으로 사용할 Foo.java 파일을 자동으로 만들기
:FOO
if not exist Foo.java goto FOO_MAKE
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:LOOP
set /p YN=Foo.java already exist. overwrite (Y/N)?

if /i "%YN%" == "y" goto FOO_MAKE
if /i "%YN%" == "n" goto :EOF

goto LOOP
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:FOO_MAKE
echo public class Foo {> Foo.java
echo   public static void main(String[] args) {>> Foo.java
echo     System.out.println("테스트");>> Foo.java
echo   }>> Foo.java
echo }>> Foo.java
echo.>> Foo.java
goto QUIT




:: 클래스 라이브러리를 컴파일/재컴파일
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:CLASS_COMPILE
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
cd /d %JAVA_CLASS_LIB%
javac -verbose *.java
if not "%ERRORLEVEL%" == "0" (
  echo jv.bat: LIB COMPILE ERROR!
  goto :EOF
)
goto QUIT




:QUIT

rem 자바 소스 "파일명"과 같은 파일이 소문자로 현재 디렉토리에 있으면 에러가 나는 한계
rem jv Foo 로 실행할 때, Foo.java 외에, foo 라는 파일이 있으면
rem %~n1 에, 대문자가 아닌 소문자로 foo 가 입력되어 에러




위의 배치파일 사용법


jv MyTest

라고 하면, MyTest.java 라는 파일을 컴파일하고 에러가 없을 경우에는 곧바로 실행합니다. (jv MyTest.java 라고 확장자를 붙여도, 확장자를 자동으로 처리합니다.)


만약 MyTest 라는 프로그램이 "실행시 옵션"을 필요로 한다면

jv MyTest 111 222 333

이런 식으로 하면 됩니다. (▶▶ Java/자바] main()의 String args[] 배열 용도, 사용법 예제 참고)




그냥 jv 라고 치면, 기본값으로 Foo.java 라는 파일을 컴파일하고 실행합니다. Foo.java 라는 파일이 현재 디렉토리에 없다면, 도움말을 출력합니다. 다만, Foo 라는 프로그램이 "실행시 옵션"을 필요로 한다면

jv Foo 111 222 333

이렇게 파일명까지 입력해 주어야 합니다.



jv -h

라고 하면 항상 도움말이 출력됩니다.


그 외에 기타 잡다한 기능도 있습니다.





블로거 에러 때문에, 3시간 전에 올린 포스트가 지금에야 블로그에 나타났습니다.



☞ 자바(Java)

☞ BATCH(.BAT)/VBScript(.VBS)

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top