【问题标题】:JAR runs using java -jar command but not on double-clickJAR 使用 java -jar 命令运行,但不是在双击时运行
【发布时间】:2019-09-21 21:51:14
【问题描述】:

我在 stack.java 文件中编写了这个程序。 'stack' 类实现了一个堆栈,'test' 类对其进行测试:

class stack
{
  int top;
  int s[]=new int [5];

  public stack()
  {
    top=-1;
  }

  public void push(int a)
  {
    if(top==4)
      System.out.println("Stack already full.");
    else
    {
      top++;
      s[top]=a;
      System.out.println("Element "+a+" Pushed.");
    }   
  }

  public int pop()
  {
    if(top==-1)
    {
      System.out.print("Stack already empty. ");
      return 0;
    }  
    else
      return(s[top--]);  
  }

  public void display()
  {
    for(int i=0;i<=top;i++)
      System.out.print(s[i]+"  ");
    System.out.print("\n");
  }
}

class test
{
  public static void main(String a[])
  {
    stack obj=new stack();
    obj.push(1);
    obj.push(2);
    obj.push(3);
    obj.push(4);
    obj.push(5);
    obj.push(6);
    System.out.println("\nStack:");
    obj.display();
    System.out.println("\nRemoving Element: "+(obj.pop()));
    System.out.println("Removing Element: "+(obj.pop()));
    System.out.println("Removing Element: "+(obj.pop()));
    System.out.println("Removing Element: "+(obj.pop()));
    System.out.println("Removing Element: "+(obj.pop()));
    System.out.println("Removing Element: "+(obj.pop()));
  }
}

我使用命令编译了这个:javac stack.java 创建了文件“stack.class”和“test.class”。现在我使用命令创建了可执行文件:

jar cvfe abc.jar test test.class stack.class

jar 使用命令完美运行:java -jar abc.jar 但双击 jar 文件没有任何反应。 我无法弄清楚问题所在。请帮忙.......

【问题讨论】:

  • 我想这更像是一个操作系统问题而不是 java。你能提供操作系统吗?
  • 操作系统:Windows 7 Ultimate。其他 jar 文件运行良好...

标签: java jar double-click


【解决方案1】:

可能你错过了清单文件或者在清单文件中没有指定入口点类(http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html)。

【讨论】:

  • jar 命令中的选项 e 添加了清单文件。它包含:Manifest-Version: 1.0 Created-By: 1.7.0_45 (Oracle Corporation) Main-Class: test
  • 是的,你说得对,我的意思是检查 jar 文件中的海报是否正确配置,以防包出现问题。
【解决方案2】:

通常的做法是在 Windows 上使用 java -jar abc.jar 创建 .bat 文件,然后双击它应该可以工作。

【讨论】:

    【解决方案3】:

    如果您想通过双击执行相同的批处理文件,创建批处理文件总是更好

    创建 .bat 文件的步骤 1.打开记事本,2.编写 java -cp abc.jar packagename.classname 或 java -jar abc.jar 3. 将记事本文件保存为 execute_abc.bat 4.双击 execute_abc.bat 文件

    【讨论】:

      猜你喜欢
      • 2011-08-02
      • 2014-09-24
      • 2012-04-30
      • 1970-01-01
      • 2011-11-11
      • 2018-12-21
      • 2019-04-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多