답변:
가장 쉬운 경로는 아마도 JRE (Java Runtime Environment)를 업그레이드하거나 다시 설치하는 것입니다.
아니면 이거:
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
Windows Vista 또는 Windows 7에서는 수동 파일 연결 편집기 가 제거되었습니다.
가장 쉬운 방법은 작지만 강력한 프리웨어 도구 인 Jarfix 를 실행 하는 것입니다. 그냥 실행하면 Java 앱이 다시 두 번 클릭 가능합니다.
Example.jar이라는 jar 파일이 있으면 다음 규칙을 따르십시오.
notepad.exe
java -jar Example.jar
.bat
.jar
파일 이있는 디렉토리에 복사 하십시오..jar
파일 을 두 번 클릭하여 실행하십시오이것의 흥미로운 부작용은 명령 프롬프트에서 실행 가능한 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에 포함시키고 실행이 끝나면 정리하여 더 우아한 솔루션 일 수 있습니다.
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에서는 테스트되지 않았습니다
사용자가 자신의 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
}
}
다른 모든 제안 외에도 고려해야 할 사항이 하나 더 있습니다. helloworld.jar가 콘솔 프로그램입니까? 그렇다면 두 번 클릭 가능한 jar 파일로 만들 수 있다고 생각하지 않습니다. 콘솔 프로그램은 입력 및 출력에 일반 cmd.exe 셸 창을 사용합니다. 일반적으로 jar "launcher"는 명령 쉘 창을 작성하지 않는 javaw.exe에 바인드됩니다.
Windows 7 x64를 실행 중이며 이러한 수정 프로그램을 사용할 수 없습니다.
이것은 결국 나를 위해 일했습니다 :
http://thepanz.netsons.org/post/windows7-jar-file-association-broken-with-nokia-ovi
실행할 .bat 파일이 포함 된 다운로드 할 수있는 아카이브가 있지만 실제 javaw.exe의 경로를 확인하십시오 !!!!
몇 가지 사항을 확인하려고합니다. 이것이 자신의 jar 파일 인 경우 매니페스트에서 Main-class를 정의했는지 확인하십시오. 우리는 명령 줄에서 실행할 수 있다는 것을 알고 있기 때문에 다른 작업은 Windows 바로 가기를 만들고 속성을 수정하는 것입니다 (둘러 볼 필요가 있습니다 .Windows 시스템이 없어야합니다). open에서 실행하는 명령은 언급 한 java -jar 명령입니다.
다른 것 : 무언가 혼동되지 않으면 어쨌든 작동해야합니다. .jar 확장자와 연관된 java가 있는지 확인하고 확인하십시오.
불행히도, Microsoft가 최신 Windows 버전에서 고급 파일 연결 대화 상자를 제거했기 때문에 쉽지 않습니다. -최신 Windows 버전에서는 .jar 파일을 여는 데 사용할 응용 프로그램 만 지정할 수 있습니다.
Windows에서 .jar 파일을 열려면 두 단계가 필요합니다.
제어판을 열고 "기본 프로그램-> 연결 설정"을 선택하십시오. .jar 확장자 ( 실행 파일 JAR 파일 )를 찾아 Java를 기본 프로그램으로 선택하여이 확장자를여십시오. " Java Platform (SE) " 로 표시 될 것입니다 . 더 빠른 대안은 .jar 파일을 마우스 오른쪽 단추로 클릭 한 다음 "변경 ..."단추를 클릭하여 관련 프로그램을 변경하는 것입니다.
이제 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
쉘 윈도우가 열리므로 사용하지 마십시오 .내가 사용하여 고정 윈도우 (10) I에서 같은 문제가 없었다 맞-클릭 은 "에 례 HelloWorld.jar "및 이동 특성 및 클릭 변경 "을 엽니 다 :"아래 버튼 "을 선택 이 PC에서 다른 응용 프로그램에 대한 봐 ". "다음으로 열기 ... "대화 상자에서 PC의 Java 폴더 위치로 이동하여 해당 jdk 폴더를 연 다음 bin 폴더 를 열고 " 거기 javaw.exe "를 . 그러면 다음에 " helloworld.jar "이 일반적인 방식으로 열립니다.
일반적인 Java 위치 예 : " C : \ Program Files (x86) \ Java \ jdk1.8.0_111 \ bin ".
규정 : 프롬프트가 나타나고 즉시 사라지면 프로그램이 실행되고 자동 종료되기 때문입니다. 스캐너를 마지막에 놓아서 종료하면 종료하기 전에 입력을 기다리는 메시지가 계속 표시됩니다. (또는 사용 지연 일 수도 있음)
cmd에서 .jar을 실행하면 정상적으로 작동하지만 두 번 클릭해도 아무런 반응이없는 것과 같은 상황이었습니다.
솔루션 : 텍스트 편집기를 열고 명령 행을 작성하십시오. java -jar Example.jar 파일을 .bat 파일로 저장하십시오. 이 bat 파일을 실행하여 필요한 출력을 얻으십시오.
한 걸음 앞으로 나아가면 Bat To Exe Converter와 같은 간단한 GUI 도구를 사용 하여이 bat 파일을 exe 파일로 변환 할 수 있습니다.
이제 .jar을 .exe 파일의 배포판으로 공유하여 누구나 사용할 수 있습니다. 모든 파일을 함께 보관하십시오. (특히 .jar 및 .bat 파일은 .bat가 cmd 프롬프트 일뿐입니다) (논리적 인 느낌)
저는 개발과 학습에 익숙하지 않습니다. 저지른 실수에 대해 변명하십시오. 제안은 환영합니다.
Java 파일 작성에 Eclipse를 사용하는 경우 실행 가능한 jar 파일로 내보내도록 선택할 수 있습니다. 나는 내 프로그램으로 이것을했고 단지 항아리를 클릭 할 수 있으며 그것은 그렇게 실행될 것입니다. 이것은 os x뿐만 아니라 두 창 모두에서 작동합니다.
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
많은 방법이 있습니다Windows에서 .jar 파일을 실행하는 가 있습니다. 그들 중 하나가 명령 프롬프트를 사용하고 있습니다.
단계 :
단계 :
1.) Google에서 Java SE Runtime Environment를 검색하십시오. https://www.google.com/search?q=Java+SE+Runtime+Environment
2) 컴퓨터에 적절한 버전을 설치하십시오
컴파일 :
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
실제로, 나는이 문제에 직면했다. 내 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();
}
}
이 코드 (내 코드)는 클래스 파일이 아닌 jar 파일에서만 작동합니다.
jar 파일은 String "jarName"과 동일한 이름을 가져야합니다.