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”方法的类是什么,并执行该类。请参阅上面的链接