2011-12-22 4 views
-1

Google과 다양한 포럼을 통해 검색했습니다 (이뿐 아니라).Jar가 명령 줄에서 실행되지 않습니다.

다른 시스템에서 프로그램을 사용하기 위해 Java 벤치 마크 응용 프로그램을 작성하고 실행 가능한 jar 파일을 작성하려고했습니다. 불행히도, 항아리가 작동하지 않습니다, 모든 항아리 파일을 만들기 위해 코드로 완벽하게 수행됩니다, 프로그램은 명령 줄에서 실행됩니다. 이 포럼에서 내 항아리 생성을 수정하는 트릭을 시도했지만 제대로 작동하지 않았습니다. (사람이 왜 알고?) O

그래서 내가 물어 : 내가 JavaBenchmark.java 파일을 컴파일 할 때 이상하게도

, 난 하나 개의 파일 (JavaBenchmark.class)뿐만 아니라 JavaBenchmark $ 1.class을하지 않습니다 몇 가지 문제가있을 수 있다면 내 코드를 확인하기 위해, 나는 그것의 GUI 애플 리케이션을 말해야 만한다.

import java.io.*; 
import java.util.Date; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
public class JavaBenchmark implements ActionListener 
{ 
    private Frame mainWindow; 
    private Button exit; 
    private String dateAndTime; 
    private TextArea values; 
    private String stringMaxMemory; 
    private String stringFreeMemory; 
    private String stringTotalFreeMemory; 
    private String stringAllocatedMemory; 

    public JavaBenchmark(String s) 
    { 
     Date myDate = new Date(); 
     dateAndTime = String.format("%tA, %<tF", myDate); 

     File[] roots = File.listRoots(); 

     mainWindow = new Frame(s); 
     mainWindow.setSize(640,480); 
     mainWindow.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent we){System.exit(0);}}); 

     String version = System.getProperty("java.version"); 
     String jvmversion = System.getProperty("java.jvm.version"); 
     String checkedJvmVersion; 
     if (jvmversion == null) 
     { 
      checkedJvmVersion = "Java Virtual Machine version: N/A"; 
     } 
     else 
     { 
      checkedJvmVersion = "Java Virtual Machine version: " + jvmversion; 
     } 
     String jvmname = System.getProperty("java.vm.name"); 
     String osname = System.getProperty("os.name"); 
     String osarchitecture = System.getProperty("os.arch"); 
     String osversion = System.getProperty("os.version"); 
     String processor = System.getenv("PROCESSOR_IDENTIFIER"); 
     int processorCores = Runtime.getRuntime().availableProcessors(); 

     Runtime runtime = Runtime.getRuntime(); 
     double freeMemory = runtime.freeMemory(); 
     double allocatedMemory = runtime.totalMemory(); 
     double maxMemory = runtime.maxMemory(); 
     double totalFreeMemory = (freeMemory + (maxMemory - allocatedMemory)); 
     stringFreeMemory = String.format("%5.2f", (freeMemory)/1024/1024); 
     stringAllocatedMemory = String.format("%5.2f", (allocatedMemory)/1024/1024); 
     stringMaxMemory = String.format("%5.2f", (maxMemory)/1024/1024); 
     stringTotalFreeMemory = String.format("%5.2f", (totalFreeMemory)/1024/1024); 

     exit = new Button("Exit"); exit.addActionListener(this); 
     values = new TextArea(30, 120); 

    Panel exitButton = new Panel(); 

    exitButton.add(exit); 

    mainWindow.add(values, "North");   
    mainWindow.add(exitButton); 

    values.append("Your Java benchmark, as on: " + dateAndTime + "\n\n"); 
    values.append("Java version: " + version + "\n"); 
    values.append("Java Virtual machine version: " + checkedJvmVersion + "\n"); 
    values.append("Java Virtual Machine name: " + jvmname + "\n"); 
    values.append("\n"); 
    values.append("Operating System: " + osname + "\n" + osarchitecture + " os version: " + osversion + "\n"); 
    values.append("\n"); 
    values.append("Processor: " + processor + " (number of cores: " + processorCores + ")\n"); 
    values.append("\n"); 
    values.append("Memory info: \n"); 
    values.append("Maximum RAM memory for JVM:  " + stringMaxMemory + " Mb\n"); 
    values.append("Allocated RAM memory for JVM:  " + stringAllocatedMemory + " Mb\n"); 
    values.append("Free RAM memory for JVM:  " + stringFreeMemory + " Mb\n"); 
    values.append("Total free RAM memory for JVM:  " + stringTotalFreeMemory + " Mb\n\n\n"); 
    values.append("HardDrive, and VirtualDrive details:\n"); 
    for (File root : roots) { 
      if (root.getTotalSpace() == 0) 
      { 
       continue; 
      } 
      else 
      { 
       values.append("Disk: " + root.getAbsolutePath() + " space allocation:\n"); 
       values.append("Total space :"); 
       values.append(String.format("%5.2f", Double.valueOf(root.getTotalSpace())/1024/1024/1024)); 
       values.append(" Gb\n"); 
       values.append("Free space : "); 
       values.append(String.format("%5.2f", Double.valueOf(root.getFreeSpace())/1024/1024/1024)); 
       values.append(" Gb\n"); 
       values.append("Occupied disk space : "); 
       values.append(String.format("%5.2f", Double.valueOf(root.getTotalSpace() - root.getFreeSpace())/1024/1024/1024)); 
       values.append(" Gb\n\n"); 

      } 
     } 

    mainWindow.pack();    //Creating the window 
    mainWindow.setLocationRelativeTo(null);   //true: position at (0,0)  false: position at center 
    mainWindow.setResizable(false);   //Intuitively known commands 
    mainWindow.setVisible(true);  //Intuitively known commands 
} 

public static void main(String[] args) 
{ 
    new JavaBenchmark("Display"); 
} 

public void actionPerformed(ActionEvent e) { 
    if(e.getSource()==exit) 
    { 
     System.exit(0); 
    } 
} 
} 
+2

그것은 더 나은 것입니다. –

+0

당신은 항아리를 어떻게 만들었습니까 – Shraddha

+0

"나는 모든 것을 시도했습니다."또는 "이것은 간단하게 작동하지 않습니다"와 같은 제목은 제목에 더 구체적으로 기재하십시오. 귀중한 정보와 도움을 줄 수있는 사람을 제공하지 마십시오. 그러한 제목에 대한 귀하의 질문을 무시할 가능성이 있습니다. – Paul

답변

1

JavaBenchmark$1.class는 윈도우 리스너를 추가 할 때 WindowAdapter을 위해 만들 익명 클래스입니다.

Jar가 작동하지 않는 한 Jar 파일을 만들면 잘못 될 위치를 식별하기 위해 수행중인 작업을 설명해야합니다. 문제는 단순히 잘못된 명령을 내고있는 것뿐입니다.

+0

jar 파일을 만들려면 jar -cvfm manifest.mf JavaBenchmark.class jar를 실행하려고 할 때 나타나는 오류 : 메인 클래스를 찾을 수 없습니다 : JavaBenchmark 프로그램이 종료됩니다 – Yakuman

+0

또한 JDK가 설치되어 있어도 프로그램이 다른 컴퓨터에서 작동하지 않는다는 것을 알았습니다. , 그것은 많은 예외를 던집니다. 많은 분류가 발견되지 않기 때문입니다. – Yakuman

1

JavaBenchmark $의 1.class로 정의 익명 클래스는 다음입니다 : 제목이 당신의 문제가 무엇인지 몇 가지 힌트를 준 경우

new WindowAdapter(){public void windowClosing(WindowEvent we){System.exit(0);}} 
관련 문제