java - 是否可以通过双击 Windows 上的 jar 文件来启动进程?
问题描述
我编写了这个小型 java 程序来了解 jar 文件如何在 Windows 上工作。
package ch01;
import java.util.Scanner;
public class Hello {
@SuppressWarnings("resource")
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(sc.next());
System.out.println(sc.next());
}
}
我使用以下内容进行了构建
javac ch01/Hello.java
java ch01.Hello
jar cfe ch01.jar ch01.Hello ch01/*.class
和这个命令
java -jar ch01.jar
设法从windows cmd调用程序,该进程出现在任务管理器中
但是,当我从文件资源管理器中双击 jar 文件时,什么也没发生,没有启动控制台,也没有运行任何进程。我错过了什么?
解决方案
您需要使用-m
or--manifest
选项创建一个添加到 jar 文件的清单文件:
jar --manifest=manifest.mf …
该清单文件必须包含如下条目:
Main-Class: ch01.Hello
另请参见此处:https ://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html
当然,您需要以*.jar
文件链接到java.exe
.
推荐阅读
- python - 为什么使用 tetpyclient 发出 POST 请求时出现 403 错误?
- php - FILTER_FLAG_ALLOW_THOUSAND 与 FILTER_VALIDATE_FLOAT 结合做什么?
- c# - 如何发布nuget包
- .net - 在 ASP.NET MVC 4 中查看组件
- http - 为什么在“Set-Cookie”响应中收到的 cookie 未在下一个请求中发送(仅限 FireFox)?
- excel - 将数据从 1 个 excel 传输到另一个的 VBA 宏
- c# - EF DTO平面模型
- r - 将图例名称设置为匿名 geom_function
- prolog - 如何将过程作为prolog中的输入
- forms - Flutter:当验证为假时,表单会发生变化