我创建了一个JAR文件,如下所示:
jar cf Predit.jar *.*
我通过双击这个JAR文件来运行它(它没有工作)。所以我像这样在DOS提示符下运行它:
java -jar Predit.jar
它引发了“加载主类失败”异常。所以我提取了这个JAR文件:
jar -xf Predit.jar
然后运行类文件:
java Predit
它运行得很好。我不知道JAR文件为什么不能工作。请告诉我运行JAR文件的步骤
我创建了一个JAR文件,如下所示:
jar cf Predit.jar *.*
我通过双击这个JAR文件来运行它(它没有工作)。所以我像这样在DOS提示符下运行它:
java -jar Predit.jar
它引发了“加载主类失败”异常。所以我提取了这个JAR文件:
jar -xf Predit.jar
然后运行类文件:
java Predit
它运行得很好。我不知道JAR文件为什么不能工作。请告诉我运行JAR文件的步骤
当前回答
您需要在jar文件清单中指定一个Main-Class。
Oracle的教程包含一个完整的演示,但这里有另一个从头开始的演示。你需要两个文件:
Test.java:
public class Test
{
public static void main(String[] args)
{
System.out.println("Hello world");
}
}
manifest . mf:
Manifest-version: 1.0
Main-Class: Test
注意,文本文件必须以新行或回车符结束。 如果最后一行不以。结尾,则不能正确解析 换行或回车。
然后运行:
javac Test.java
jar cfm test.jar manifest.mf Test.class
java -jar test.jar
输出:
Hello world
其他回答
您需要在jar文件清单中指定一个Main-Class。
Oracle的教程包含一个完整的演示,但这里有另一个从头开始的演示。你需要两个文件:
Test.java:
public class Test
{
public static void main(String[] args)
{
System.out.println("Hello world");
}
}
manifest . mf:
Manifest-version: 1.0
Main-Class: Test
注意,文本文件必须以新行或回车符结束。 如果最后一行不以。结尾,则不能正确解析 换行或回车。
然后运行:
javac Test.java
jar cfm test.jar manifest.mf Test.class
java -jar test.jar
输出:
Hello world
运行jar之前,检查Main-Class: classname在MANIFEST中是否可用。MF文件。清单。MF存在于罐子中。
java -jar filename.jar
一个非常简单的方法来创建.class, .jar文件。
执行jar文件。不需要太担心清单文件。让它简单而优雅。
Java示例Hello World程序
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
编译类文件
javac HelloWorld.java
创建jar文件
jar cvfe HelloWorld.jar HelloWorld HelloWorld.class
or
jar cvfe HelloWorld.jar HelloWorld *.class
运行jar文件
java -jar HelloWorld.jar
Or
java -cp HelloWorld.jar HelloWorld
我有这样的文件夹结构:
D:\JavaProjects\OlivePressApp\com\lynda\olivepress\Main.class D:\JavaProjects\OlivePressApp\com\lynda\olivepress\press\OlivePress.class D:\JavaProjects\OlivePressApp\com\lynda\olivepress\olives\Kalamata.class D:\JavaProjects\OlivePressApp\com\lynda\olivepress\olives\Ligurian.class D:\JavaProjects\OlivePressApp\com\lynda\olivepress\olives\Olive.class
Main.class在包com.lynda.olivepress中
还有另外两个包:
com.lynda.olivepress.press com.lynda.olivepress.olive
1)创建一个名为“Manifest.txt”的文件,有两行,第一行是Main-Class,第二行是空行。
Main-Class: com.lynda.olivepress.Main
D:\JavaProjects\OlivePressApp\Manifest.txt
2)使用清单和主类入口点创建JAR
D:\JavaProjects\OlivePressApp>jar cfm OlivePressApp.jar Manifest.txt / lynda/olivepress/main.class /lynda/olivepress/*
3)运行JAR
OlivePressApp.jar
注:com/lynda/olivepress/*表示在第一点之前包含上面提到的其他两个包。
Eclipse可运行JAR文件
创建一个Java项目RunnableJAR
如果使用了任何jar文件,则将它们添加到项目构建路径。 在创建Runnable Jar文件时,选择带有main()的类。
主类
public class RunnableMainClass {
public static void main(String[] args) throws InterruptedException {
System.out.println("Name : "+args[0]);
System.out.println(" ID : "+args[1]);
}
}
使用java程序(cmd)通过提供参数运行Jar文件,并在eclipse控制台中获得输出和显示。
public class RunJar {
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
String jarfile = "D:\\JarLocation\\myRunnable.jar";
String name = "Yash";
String id = "777";
try { // jarname arguments has to be saperated by spaces
Process process = Runtime.getRuntime().exec("cmd.exe start /C java -jar "+jarfile+" "+name+" "+id);
//.exec("cmd.exe /C start dir java -jar "+jarfile+" "+name+" "+id+" dir");
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream ()));
String line = null;
while ((line = br.readLine()) != null){
sb.append(line).append("\n");
}
System.out.println("Console OUTPUT : \n"+sb.toString());
process.destroy();
}catch (Exception e){
System.err.println(e.getMessage());
}
}
}
在Eclipse中查找快捷方式:
►帮助►帮助内容►Java开发用户指南►参考资料►菜单和操作