Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的.jar文件赢了';我什么也不做_Java_Jar - Fatal编程技术网

Java 我的.jar文件赢了';我什么也不做

Java 我的.jar文件赢了';我什么也不做,java,jar,Java,Jar,我创建了一个程序,它或多或少地将字符串数组作为一个对象,并随机打印一个字符串 那么基本上 class Fun { string[] namestrings = new string[#] constructor() { fill with some strings} public static void main (String[]arg) { create instance of

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

那么基本上

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


我得到一个名为Happy的.jar文件,当我点击它时,我得到一条错误消息,上面写着“javajar文件Happy无法启动读取控制台可能的错误消息”。我有一个mac,我正在运行lepord,如果这造成了差异。发生什么事了

命令中不需要.class文件。因此:

java -jar Happy.jar Fun

命令中不需要.class文件。因此:

java -jar Happy.jar Fun

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

java -jar Happy.jar

请参阅。

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

java -jar Happy.jar

请参阅。

拥有一个包含以下内容的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通常会自动为您这样做。

有一个包含以下内容的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文件在运行时将执行哪个类

在您的情况下,这听起来很愚蠢,因为您只有一个类,但功能齐全的java应用程序可能有数百个

这样做的方法是添加一个名为
manifest
的特殊文件,告诉jar,嘿,这是应该运行的类

所以试试这个:

// 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 
消息将出现在控制台中


我希望这有帮助

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

在您的情况下,这听起来很愚蠢,因为您只有一个类,但功能齐全的java应用程序可能有数百个

这样做的方法是添加一个名为
manifest
的特殊文件,告诉jar,嘿,这是应该运行的类

所以试试这个:

// 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 
消息将出现在控制台中


我希望这有帮助

然后我得到一个错误,它说Funn:derectoryy中没有这样的文件,我们的类很高兴,所以您需要将其指定为要运行的类。假设您的jar文件实际名为Happy.jar,这应该可以做到。如果名称中不包含Fun,它如何知道从Fun.class文件获取信息?还有,为什么不说你编辑了你的帖子?对不起,我的类名很有趣。我脑子里乱七八糟的。我的班名很有趣。当我执行jar-cf Fun.jar Fun时,我得到了相同的错误,然后我得到了一个错误,它说Funn:在Derectoryy中没有这样的文件,您的类是满意的,所以您需要指定它作为要运行的类。假设您的jar文件实际名为Happy.jar,这应该可以做到。如果名称中不包含Fun,它如何知道从Fun.class文件获取信息?还有,为什么不说你编辑了你的帖子?对不起,我的类名很有趣。我脑子里乱七八糟的。我的班名很有趣。当我执行jar-cf Fun.jar Fun时,我得到的错误与您将FQCN设置为主类属性相同。然后将清单添加到jar文件中。当您使用“java-jarhappy.jar”来运行您的文件时,VM将查看META-INF/manifest.mf,以找出使用“main”方法的类是什么,并执行该类。请参阅上面的链接,将FQCN设置为Main Class属性。然后将清单添加到jar文件中。当您使用“java-jarhappy.jar”来运行您的文件时,VM将查看META-INF/manifest.mf,以找出使用“main”方法的类是什么,并执行该类。请参阅上面的链接