我有这个java程序,我想在jar中打包。 它编译得很好,它可以毫无错误地编译成jar。但是,当我双击它时,它不会启动。我知道大多数jar应用程序都使用JFrame,并且工作正常。但它是否可以使命令提示符/ shell为基础? (如显示System.out.println)
示例是可以通过双击jar来执行此代码:
public class Hello
{
public static void main( String[] args )
{
System.out.println( "Hello, World!" );
}
}
答案 0 :(得分:10)
这样做没有问题。但是你期望在哪里看到输出?
如果您从控制台执行java -jar my jar.jar
,您将看到“Hello,World”。
如果要双击,则需要创建JFrame。
答案 1 :(得分:5)
您可以更改jar文件的文件关联,以让它们打开控制台。 (这适用于Windows)
ftype jarfile
jarfile="C:\Path\To\Java\bin\javaw.exe" -jar "%1 %*"
ftype jarfile "C:\Path\To\Java\bin\java.exe" -jar "%1" %*
(您可能需要管理员权限才能执行此操作)。答案 2 :(得分:2)
我没有看到任何人提到明显的解决方案:制作一个包含每个人都在谈论的命令的.cmd(或.bat)文件 - java -jar YourJar.jar
。您可以双击.cmd文件,将打开一个控制台窗口。它会在您的程序退出时立即关闭,因此程序应该在退出之前等待按键。
答案 3 :(得分:0)
不确定。首先尝试运行您的程序如下:
java -cp yourjar.jar Main
其中Main是主类的完全限定类名。
当这个工作正常时,如果你创建了 exacutable jar,请尝试运行你的程序,如下所示:
java -jar yourjar.jar
当这项工作正常时双击也应该有效,除非您将扩展名jar
映射到安装JRE时默认执行的javaw
以外的程序。
答案 4 :(得分:0)
如果你想显示“Hello,world!”字符串您必须从命令行执行代码:
jar -jar your_jar_name.jar
答案 5 :(得分:0)
输出转发到控制台,但没有eclipse,没有任何!解决此问题的唯一方法是在命令提示符下启动程序,然后您将从程序中获取输出。
答案 6 :(得分:-1)
您可以通过包含清单文件使jar成为可执行文件,该清单文件包含具有main方法的类的名称(在您的示例中为Hello)。 Here是一个详细说明您需要执行的操作的链接。