Windows에서 JAR 파일 실행


228

helloworld.jar 라는 JAR 파일이 있습니다. 있습니다. 그것을 실행하기 위해 명령 줄 창에서 다음 명령을 실행하고 있습니다.

java -jar helloworld.jar

이것은 잘 작동하지만 대신 더블 클릭으로 어떻게 실행합니까? 소프트웨어를 설치해야합니까?


1
여기에 설명 된 단계를 따르십시오. 더블 클릭으로 Vista에서 Jar 실행
RealHowTo

답변:


123

가장 쉬운 경로는 아마도 JRE (Java Runtime Environment)를 업그레이드하거나 다시 설치하는 것입니다.

아니면 이거:

  • Windows 탐색기를 열고 도구에서 '폴더 옵션 ...'을 선택하십시오.
  • 파일 유형 탭을 클릭하고 아래로 스크롤하여 JAR 파일 유형을 선택하십시오.
  • 고급 버튼을 누릅니다.
  • 파일 형식 편집 대화 상자에서 작업 상자에서 열기를 선택하고 편집 ...을 클릭하십시오.
  • 찾아보기 단추를 누르고 Java 인터프리터 javaw.exe 위치로 이동하십시오.
  • 조치 수행에 사용되는 애플리케이션 필드에서 다음과 유사한 것을 표시해야합니다 C:\Program Files\Java\j2re1.4.2_04\bin\javaw.exe" -jar "%1" %(참고 : 'javaw'로 시작하는 부분은 정확히 동일해야합니다. 경로 이름의 다른 부분은 사용중인 Java 버전에 따라 다를 수 있습니다. )를 입력 한 다음 모든 대화 상자가 닫힐 때까지 OK 버튼을 누릅니다.

여기서 훔친 것 : http://windowstipoftheday.blogspot.com/2005/10/setting-jar-file-association.html


13
쉬운 방법은, jar 파일을 마우스 오른쪽 버튼으로 클릭하고 "Open with Java Runtime Environment"를 선택한 것입니다. :)
Kassem

이렇게하면 항상 "Java 플랫폼 SE 바이너리가 작동을 멈췄습니다"라는 오류가 발생합니다 ... 누구든지 도울 수 있습니까, 문제는 무엇입니까?
Faizan

1
@Faizan-문제가 별도의 문제인 것 같습니다. "Java platform SE 바이너리가 작동을 멈췄습니다"에 대한 일부 SO 및 Google 결과가 표시됩니다. 나는 그것들을 조사 할 것이다.
Brian Kelly

26
윈 7에서 폴더 옵션에는 파일 형식 탭이 없습니다
라두 Simionescu

79

Windows Vista 또는 Windows 7에서는 수동 파일 연결 편집기 가 제거되었습니다.

가장 쉬운 방법은 작지만 강력한 프리웨어 도구 인 Jarfix 를 실행 하는 것입니다. 그냥 실행하면 Java 앱이 다시 두 번 클릭 가능합니다.


팁을 가져 주셔서 감사합니다.이 "사용할 수없는"새 상자를 제거 할 수있는 방법 만 있다면
LoG

55

.jar 파일을 배포하고 다른 사람의 Windows 컴퓨터에서 실행할 수있게하려면 명령 프롬프트에서 다음과 같이 간단한 .bat 파일을 만들 수 있습니다.

java -jar MyJavaTool.jar

.bat 파일을 .jar 파일과 동일한 디렉토리에 배치하십시오.


그러나 .bat는 어떻게 실행됩니까? Java 애플리케이션이 명령 행 세션을 열도록하는 동일한 전략입니까?
Ungeheuer

1
글쎄, 박쥐 파일을 열면됩니다. 귀하의 질문을 이해하지 못했습니다.

26

Example.jar이라는 jar 파일이 있으면 다음 규칙을 따르십시오.

  1. 열기 notepad.exe
  2. 쓰기 : java -jar Example.jar
  3. 확장명으로 저장 .bat
  4. .jar파일 이있는 디렉토리에 복사 하십시오.
  5. .jar파일 을 두 번 클릭하여 실행하십시오

4
1) Mac에서는 작동하지 않습니다. 또는 유닉스. 2) 불필요한 파일을 생성합니다. 3) 2 년 전에 더 나은 답변이 제공되었습니다. 4) .. 그리고 그 단어는 '당신'입니다.
앤드류 톰슨

Windows에서 항아리를 실행하는 좋은 방법! 또한 명령 줄 입력을 숨기지 않으므로 생각했던 것처럼 내 항아리가 왜 실행되지 않는지 알 수있었습니다. 감사합니다.
Joe

15

이것의 흥미로운 부작용은 명령 프롬프트에서 실행 가능한 jar 파일을 시작할 때 문제를 일으 킵니다.

시도하면 (명령 프롬프트에서) :

jarfile.jar parameter

이것은 다음과 같이 번역되기 때문에 기쁨이 아닙니다.

javaw.exe -jar jarfile.jar parameter

그러나 다음 명령이 작동합니다.

java.exe -jar jarfile.jar parameter

위에서 설명한대로 파일 관리자에서 연관을 변경하는 경우 :

"C:\Program Files\Java\j2re1.4.2_04\bin\java.exe" -jar "%1" %*

그런 다음 다음을 입력 할 수 있습니다.

jarfile.jar parameter

명령 프롬프트에서 이제 작동합니다!

편집 : (하지만 폼 기반 (비 콘솔) Java 앱을 실행할 때 검은 콘솔 창이 표시되므로 이상적인 솔루션은 아닙니다)

이러한 jar 파일을 창에서 두 번 클릭하여 실행하면 매개 변수가 전달되지 않으므로 Java 코드는 스택 오버 플로우 예외를 처리하고 끝에 "키 누르기"기능을 포함해야합니다. 그렇지 않으면 창이 사라집니다.

창에서 매개 변수를 전달하려면 대상 줄에 매개 변수가 포함 된 jar 파일에 대한 바로 가기를 만들어야합니다 (바로 가기를 마우스 오른쪽 버튼으로 클릭하고 속성 선택).이 파일에서 jar 파일 아이콘 자체에 매개 변수를 추가 할 수 없습니다 방법.

여기에 하나의 일관된 솔루션이 없지만 다른 콘솔 응용 프로그램과 동일한 문제가 있습니다.

"bat to exe"라는 Windows 프리웨어 응용 프로그램이 있습니다.이 응용 프로그램에는 적절한 명령 줄이있는 .bat 파일에서 exe 파일을 만드는 데 사용할 수 있습니다. 이 응용 프로그램을 사용하여 jar 파일을 exe에 포함시키고 실행이 끝나면 정리하여 더 우아한 솔루션 일 수 있습니다.


11

먼저 cmd (명령 프롬프트)에서 경로를 설정하십시오.

set path="C:\Program Files\Java\jre6\bin"

그런 다음 입력

java -jar yourProgramname.jar 

9

Windows XP * 에는 2 개의 명령 이 필요 합니다.

   C:\>ftype myjarfile="C:\JRE1.6\bin\javaw.exe" -jar "%1" %* 
   C:\>assoc .jar=myjarfile  

JRE의 올바른 경로와 원하는 이름을 사용하십시오 myjarfile.

현재 설정을 확인하려면 :

   C:\>assoc .jar  
   C:\>ftype jarfile  

이번에는 대신에 첫 번째 명령에서 반환 된 값을 사용합니다 jarfile.

* Windows 7에서는 테스트되지 않았습니다


1
익명 사용자가 Windows 7 (JRE 7)에서이를 테스트했습니다. 관리자로 cmd를 실행하면 작동한다고 말합니다.
Jeremy Stein

내 눈에 가장 좋은 해결책. Windows 10까지 작동합니다. ftype 및 assoc 명령은 관리자 권한으로 명령 프롬프트 창에서 실행해야합니다.
SixDoubleFiveTreeTwoOne

7

사용자가 자신의 PC를 변경할 필요가 없습니다. Runtime.getRuntime.exec ()를 사용하면 cmd.exe를 시작하고 그 안에서 명령을 실행할 수 있습니다. 따라서 사용자가 .jar 파일을 클릭하면 Java 프로그램이 명령 프롬프트에서 자체적으로 실행될 수 있습니다.

public static void main(String[] args) throws IOException {
    if(args.length == 0) {
        Process p = Runtime.getRuntime().exec("cmd.exe /c start java -jar " + (new File(NameOfClass.class.getProtectionDomain().getCodeSource().getLocation().getPath())).getAbsolutePath() + " cmd");
    } else {
        //code to be executed
    }
}

6

다른 모든 제안 외에도 고려해야 할 사항이 하나 더 있습니다. helloworld.jar가 콘솔 프로그램입니까? 그렇다면 두 번 클릭 가능한 jar 파일로 만들 수 있다고 생각하지 않습니다. 콘솔 프로그램은 입력 및 출력에 일반 cmd.exe 셸 창을 사용합니다. 일반적으로 jar "launcher"는 명령 쉘 창을 작성하지 않는 javaw.exe에 바인드됩니다.



4

regedit에서 열기 HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command

왼쪽에서 기본값을 두 번 클릭하고 java.exe경로와 " %1"인수 사이에 -jar을 추가하십시오 .


이게 다야 감사. 다른 모든 것들은 도움이되지 않았습니다.
raedma

3

몇 가지 사항을 확인하려고합니다. 이것이 자신의 jar 파일 인 경우 매니페스트에서 Main-class를 정의했는지 확인하십시오. 우리는 명령 줄에서 실행할 수 있다는 것을 알고 있기 때문에 다른 작업은 Windows 바로 가기를 만들고 속성을 수정하는 것입니다 (둘러 볼 필요가 있습니다 .Windows 시스템이 없어야합니다). open에서 실행하는 명령은 언급 한 java -jar 명령입니다.

다른 것 : 무언가 혼동되지 않으면 어쨌든 작동해야합니다. .jar 확장자와 연관된 java가 있는지 확인하고 확인하십시오.


1

불행히도, Microsoft가 최신 Windows 버전에서 고급 파일 연결 대화 상자를 제거했기 때문에 쉽지 않습니다. -최신 Windows 버전에서는 .jar 파일을 여는 데 사용할 응용 프로그램 만 지정할 수 있습니다.

Windows에서 .jar 파일을 열려면 두 단계가 필요합니다.

  1. 제어판을 열고 "기본 프로그램-> 연결 설정"을 선택하십시오. .jar 확장자 ( 실행 파일 JAR 파일 )를 찾아 Java를 기본 프로그램으로 선택하여이 확장자를여십시오. " Java Platform (SE) " 로 표시 될 것입니다 . 더 빠른 대안은 .jar 파일을 마우스 오른쪽 단추로 클릭 한 다음 "변경 ..."단추를 클릭하여 관련 프로그램을 변경하는 것입니다.

  2. 이제 regedit를 열고 HKEY_CLASSES_ROOT\jarfile\shell\open\command키를여십시오. 우리를 위해 Luckilly는 (Default)값에 대한 매개 변수를 지정할 수 있습니다 . 내 Windows 시스템에서는 다음과 같이 보입니다. C:\app\32\jre7\bin\javaw.exe" -jar "%1" %*그러나 대부분의 경우 다음 문자열입니다.C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

노트:

  • java.exe쉘 윈도우가 열리므로 사용하지 마십시오 .
  • jarfix의 이 스레드에서 언급 된 도구는 가장 가능성이 당신을위한 레지스트리 수정보다 더 아무것도하지 않습니다. 시스템 관리자가 네트워크의 모든 워크 스테이션에 레지스트리 변경을 "푸시"할 수 있다는 것을 의미하므로 수동 레지스트리 변경 방법을 선호합니다.

1

내가 사용하여 고정 윈도우 (10) I에서 같은 문제가 없었다 맞-클릭 은 "에 례 HelloWorld.jar "및 이동 특성 및 클릭 변경 "을 엽니 다 :"아래 버튼 "을 선택 이 PC에서 다른 응용 프로그램에 대한 봐 ". "다음으로 열기 ... "대화 상자에서 PC의 Java 폴더 위치로 이동하여 해당 jdk 폴더를 연 다음 bin 폴더 를 열고 " 거기 javaw.exe "를 . 그러면 다음에 " helloworld.jar "이 일반적인 방식으로 열립니다.

일반적인 Java 위치 예 : " C : \ Program Files (x86) \ Java \ jdk1.8.0_111 \ bin ".


1

클릭 / 두 번 클릭으로 jar 파일을 실행하는 또 다른 방법은 파일 이름 앞에 "-jar"를 추가하는 것입니다. 예를 들어, 파일 이름을 바꿀 것 MyJar.jar까지를 -jar MyJar.jar.

물론 .class관련 파일 이 있어야합니다 java.exe. 이것은 모든 경우에 효과가 없을 수도 있지만 대부분의 경우 효과가있었습니다.


1

규정 : 프롬프트가 나타나고 즉시 사라지면 프로그램이 실행되고 자동 종료되기 때문입니다. 스캐너를 마지막에 놓아서 종료하면 종료하기 전에 입력을 기다리는 메시지가 계속 표시됩니다. (또는 사용 지연 일 수도 있음)

cmd에서 .jar을 실행하면 정상적으로 작동하지만 두 번 클릭해도 아무런 반응이없는 것과 같은 상황이었습니다.

솔루션 : 텍스트 편집기를 열고 명령 행을 작성하십시오. java -jar Example.jar 파일을 .bat 파일로 저장하십시오. 이 bat 파일을 실행하여 필요한 출력을 얻으십시오.

한 걸음 앞으로 나아가면 Bat To Exe Converter와 같은 간단한 GUI 도구를 사용 하여이 bat 파일을 exe 파일로 변환 할 수 있습니다.

이제 .jar을 .exe 파일의 배포판으로 공유하여 누구나 사용할 수 있습니다. 모든 파일을 함께 보관하십시오. (특히 .jar 및 .bat 파일은 .bat가 cmd 프롬프트 일뿐입니다) (논리적 인 느낌)

저는 개발과 학습에 익숙하지 않습니다. 저지른 실수에 대해 변명하십시오. 제안은 환영합니다.


1

.bat파일 사용 :

.bat 파일에 명령을 넣으십시오. 여기, 당신의 명령은입니다 java -jar path\yourJarName.jar. Something like: java -jar C:\workspace\myApplication.jar

저장하고 박쥐 파일을 두 번 클릭하여 항아리를 실행하십시오. 파일 이름은 다음과 같습니다fileName.bat


0

Java 파일 작성에 Eclipse를 사용하는 경우 실행 가능한 jar 파일로 내보내도록 선택할 수 있습니다. 나는 내 프로그램으로 이것을했고 단지 항아리를 클릭 할 수 있으며 그것은 그렇게 실행될 것입니다. 이것은 os x뿐만 아니라 두 창 모두에서 작동합니다.



0

start.bat를 만드는 것이 저에게 효과적이었습니다.

텍스트 문서를 열고 입력하십시오. java -jar 당신이 무엇이든 .jar

실행할 .jar 파일과 동일한 폴더에 start.bat로 저장하십시오. 그런 다음 박쥐


0

jar 파일을 두 번 클릭하여 실행해야하는 경우 " Runnable JAR " . IDE로 간단하게 할 수 있습니다.

일식을 사용하는 경우 다음 단계를 따르십시오.

    To create a new runnable JAR file in the workbench:

1.From the menu bar's File menu, select Export.
2.Expand the Java node and select Runnable JAR file. Click Next.
3.In the  Opens the Runnable JAR export wizard Runnable JAR File Specification page, select a 'Java Application' launch configuration to use to create a runnable JAR.
4.In the Export destination field, either type or click Browse to select a location for the JAR file.
5.Select an appropriate library handling strategy.
Optionally, you can also create an ANT script to quickly regenerate a previously created runnable JAR file.

자세한 정보는 Eclipse 도움말 페이지에서 찾을 수 있습니다. LINK


0

많은 방법이 있습니다Windows에서 .jar 파일을 실행하는 가 있습니다. 그들 중 하나가 명령 프롬프트를 사용하고 있습니다.

단계 :

  1. 명령 프롬프트 열기 (관리자 권한으로 실행)
  2. 이제 루트 디렉토리에 "cd \"명령을 작성하십시오
  3. "java jar filename.jar"을 입력하십시오. 참고 : WinRAR, jarfix 등과 같은 타사 앱도 사용할 수 있습니다.


0

.bat파일 작성 :

start javaw -jar %*

이 앱으로 열려면 앱 기본값을 선택 .jar하십시오..bat 파일 하십시오.

파일을 cmd시작할 때 닫힙니다 .jar.


0

컴파일 :

javac  -cp ".;./mysql-connector-java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart.java

달리기 :

java  -cp ".;./mysql-connector-java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart

0

실제로, 나는이 문제에 직면했다. 내 jar 파일에 .bat 러너를 만들어서 문제를 해결했다

.

class FileHandler{
   public static File create_CMD_Rnner(){
      int exitCode = -1625348952;
      try{
           File runner = new File(Main.batName);
           PrintWriter printer = new PrintWriter(runner);
           printer.println("@echo off");
           printer.println("title " + Main.applicationTitle);
           printer.println("java -jar " + Main.jarName + " " + Main.startCode );
           printer.println("PAUSE");
           printer.flush();
           printer.close();
           return runner;
       }catch(Exception e){
           System.err.println("Coudln't create a runner bat \n exit code: " + exitCode);
           System.exit(exitCode);
           return null;
       }
   }
}



그런 다음 기본 애플리케이션 클래스에서 다음을 수행하십시오.

public class Main{
    static String jarName = "application.jar";
    static String applicationTitle = "java Application";
    static String startCode = "javaIsTheBest";
    static String batName = "_.bat";


    public static void main(String args[]) throws Exception{
        if(args.length == 0 || !args[0].equals(startCode)) {
            Desktop.getDesktop().open(FilesHandler.create_CMD_Rnner());
            System.exit(0);
        }else{
            //just in case you wanted to hide the bat
            deleteRunner();
            // Congratulations now you are running in a cmd window ... do whatever you want
            //......
            System.out.println("i Am Running in CMD");
            //......
            Thread.sleep(84600);
        }
    }


    public static void deleteRunner(){
        File batRunner = new File(batName);
        if(batRunner.exists()) batRunner.delete();
    }
}


점에 유의하시기 바랍니다

  1. 이 코드 (내 코드)는 클래스 파일이 아닌 jar 파일에서만 작동합니다.

  2. jar 파일은 String "jarName"과 동일한 이름을 가져야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.