我创建了一个程序,它或多或少地将一个字符串数组作为对象并随机打印一个。
so 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
}
当我在命令行上编译并运行它时它工作正常但是当在命令行上我输入jar -cf Happy.jar Fun.class
我得到一个名为Happy的.jar文件,当我点击它时,我收到一条错误消息,上面写着“java Jar文件很高兴无法启动阅读consol可能的错误消息”我有一台Mac我正在运行lepord如果有所不同。这是怎么回事?
答案 0 :(得分:3)
拥有包含以下内容的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 Application,IDE通常会自动为您执行此操作。
答案 1 :(得分:2)
答案 2 :(得分:1)
你需要告诉.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
该消息将显示在控制台中。
我希望这会有所帮助。
答案 3 :(得分:0)
您的命令中不需要.class文件。所以:
java -jar Happy.jar Fun