繁体   English   中英

我的.jar文件无法执行任何操作

[英]my .jar file won't do anything

我创建了一个程序,该程序或多或少地将字符串数组作为对象保存并随机打印一个。

那么基本

class Fun 
{


       string[] namestrings = new string[#] 

       constructor() 
       { fill with some strings} 

       public static void main (String[]arg) 
       { 
            create instance of class
            do some junk with it 
            method that prints it 
       } 
       method that prints it {} 
       another method 
    } 

当我在命令行上编译并运行它时,它工作正常,但是在jar -cf Happy.jar Fun.class行上,我输入jar -cf Happy.jar Fun.class

我得到了一个名为Happy的.jar文件,当我单击它时,我收到一条错误消息,内容为“无法启动快乐的Java Jar文件,请阅读consol以获得可能的错误消息”,如果有那台Mac,我正在运行lepord有所不同。 这是怎么回事?

具有以下内容的manifest.mf文件,并将其作为META-INF / manifest.mf文件打包到您的JAR文件中

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Created-By: 14.3-b01 (Sun Microsystems Inc.)
Main-Class: Fun

然后,您可以使用

java -jar Happy.jar

如果您将项目创建为Java应用程序,则IDE通常会自动为您执行此操作。

您还可以在JAR的清单中添加Main-Class属性。 那你就可以做

java -jar Happy.jar

看到这个

您需要告诉.jar文件,它将在运行时执行哪个类。

在您看来,这听起来很愚蠢,因为您只有一堂课,但是功能齐全的Java应用程序可能有数百个。

执行此操作的方法是在告诉jar的位置添加一个名为manifest的特殊文件,嘿,这是您应该运行的类。

所以试试这个:

// HelloWold.java
// you know 
public class HelloWorld {
    public static void main( String [] args ) {
       System.out.printn("Look, I'm running");
    }
 }

将其保存到HelloWorld.java

编译它

$javac HelloWorld.java 

使用以下内容创建manifest.mf文件:

  Main-Class: HelloWorld

和所有的包在一起。

 $jar -cmf manifest.mf  yourJar.jar HelloWorld.class

创建名为yourJar.jar的文件。

现在,如果双击它,它将运行,但是它会立即消失,您可以通过以下命令从命令中运行它:

 $java -jar yourJar.jar 

并且该消息将出现在控制台中。

我希望这有帮助。

您在命令中不需要.class文件。 所以:

java -jar Happy.jar Fun

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM