NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Error bat 파일을 관리자 권한으로 실행하기. (NoClassDefFoundError)

    페이지 정보

    본문

    안녕하세요. 소심비형입니다. 일반적으로 로컬에서 bat 파일을 실행하는 경우, 권한이 부족해서 문제를 발생시키는 일은 없을겁니다. 하지만, 외부 프로그램에서 호출하는 경우에는 권한이 불충분하여 실행되지 않습니다. 예로, 이클립스에서 exe 또는 bat 파일을 실행하면 정상적으로 실행이 안되는 경우가 발생하죠-_-; 이 때 개발자가 알기 쉬운 메시지를 보여주면 좋겠지만 대부분의 에러 메시지는 그리 큰 도움이 되지 않습니다. 아래 그림처럼 에러와는 관련없는 메시지를 표시합니다.

    VsOl5MY.png

     

     

    아래 코드를 실행하려는 bat의 위쪽에 추가하면 관리자 권한으로 실행할 수 있습니다. 여러가지 문제가 있을 수 있겠지만 권한 문제만큼 사람을 귀찮게 하는게 없죠-_-;

    @echo off
    
    >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
    
    if '%errorlevel%' NEQ '0' (
        echo Run as Administrator...
        goto UACPrompt
    ) else ( goto gotAdmin )
    :UACPrompt
        echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
        set params = %*:"=""
        echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
     
        "%temp%\getadmin.vbs"
        rem del "%temp%\getadmin.vbs"
        exit /B
    :gotAdmin
     
    pushd "%CD%"
        CD /D "%~dp0"
    
    [실행 할 내용]

     

     

    필요에 따라서 실제 이렇게 사용하고 있기도 합니다. 보안에 큰 문제가 되지 않는다면 UAC를 끄고 서버를 운영하기도 하는데... 그렇더라도 마음 한구석에 찝찝함이 남아있습니다. 가능하면 UAC를 끄지 않고 구성하는 방향으로 가는게 어떨까 합니다. 보안은 중요하니까요~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천1 비추천0

    댓글목록

    등록된 댓글이 없습니다.