Jar не запускается в командной строке - PullRequest
0 голосов
/ 22 декабря 2011

Я выполнил поиск в Google и на различных форумах (и на этом тоже).

Я создал приложение, эталонный тест Java и хотел создать исполняемый файл JAR, чтобы использовать программу на другихмашины.К сожалению, jar не работает, все отлично с кодом для создания файла jar, программа запускается из командной строки.Я попробовал хитрости, найденные на этом форуме, чтобы исправить создание jar-файла, но это не сработало.

Как ни странно, когда я компилирую файл JavaBenchmark.java, я не получаю только один файл (JavaBenchmark.class), но также JavaBenchmark $ 1.class: O (кто-нибудь знает, почему?)

Поэтому я прошу вас проверить мой код, если есть проблемы, я должен сказать, что это приложение с графическим интерфейсом.

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 ]

1 голос
/ 22 декабря 2011

JavaBenchmark $ 1.class - это анонимный класс, определенный следующим образом:

new WindowAdapter(){public void windowClosing(WindowEvent we){System.exit(0);}}
1 голос
/ 22 декабря 2011

JavaBenchmark$1.class - это анонимный класс, который вы создаете для WindowAdapter, когда добавляете оконный слушатель.

Поскольку Jar не работает, вам нужно будет описать, что вы делаетесоздать банку, чтобы определить, где вы идете не такСкорее всего, вы просто вводите неправильную команду.

...