[英]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文件,它将在运行时执行哪个类。
在您看来,这听起来很愚蠢,因为您只有一堂课,但是功能齐全的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.