我的.jar文件不会做任何事情
问题描述:
我创建了一个程序,它或多或少地将一个字符串数组作为对象并随机打印一个。我的.jar文件不会做任何事情
所以basicaly
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
}
当我编译和命令行上运行它,它工作正常,但当在COMAND行我jar -cf Happy.jar Fun.class
键入我会得到一个名为.jar文件和快乐时我点击它,我得到一个错误消息,读取“的Java Jar文件快乐无法启动阅读可能的错误消息CONSOL”我有一个Mac我正在运行Lepord,如果这使差异。这是怎么回事?
答
有以下内容的MANIFEST.MF,并将其打包到你的JAR文件中META-INF/MANIFEST.MF
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
IDE通常会自动为您执行此操作,如果您将项目创建为Java应用程序。
答
您的命令中不需要.class文件。因此:
java -jar Happy.jar Fun
答
您需要告诉.jar文件运行时它将执行哪个类。
在你的情况听起来很愚蠢的,因为你只有一类,但功能齐全的Java应用程序可能有数百人。
你做到这一点是通过添加名为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
,并会出现在控制台的消息。
我希望这会有所帮助。
然后我得到一个错误,说Funn:没有这样的文件在学术搜索 – David 2010-04-21 05:05:06
你的课是快乐的,所以你需要指定它作为类运行。假设你的jar文件实际上叫做Happy.jar,应该这样做。 – anger 2010-04-21 05:07:32
如果我不在名称中包含Fun,它将如何知道从Fun.class文件获取信息?也为什么不说你编辑了你的文章? – David 2010-04-21 05:07:43