Java Socket编程:如何生成Windows客户端与服务端两个可执行文件
把Java Socket项目打包成Windows可执行文件(.exe)及相关问题解决
第一步:先生成可运行JAR包
不管用工具还是命令行,先把你的Server.java和Client.java分别打包成可运行JAR:
- 用NetBeans操作:右键项目 → 导出 → Java → 可运行JAR文件,分别选择
Server和Client作为主类,导出两个独立的JAR包(比如Server.jar和Client.jar)。 - 用命令行操作:
- 先编译源码:
javac Server.java Client.java - 为每个主类创建manifest文件,比如
server.mf内容为:Main-Class: Server(注意文件最后要留空一行) - 打包Server的JAR:
jar cvfm Server.jar server.mf Server.class - 同理制作
Client.jar
- 先编译源码:
第二步:将JAR转为.exe文件
推荐用Launch4j(免费轻量,无需安装),操作流程如下:
- 下载解压Launch4j后打开,在「Basic」标签:
- 「Output file」选择你要生成的exe保存路径(比如
D:\projects\Server.exe) - 「Jar」选择刚才生成的
Server.jar
- 「Output file」选择你要生成的exe保存路径(比如
- 在「JRE」标签:设置最小JRE版本(比如
1.8),确保目标电脑有对应版本的Java环境 - 控制CMD窗口显示:在「Header」标签,把「Console」改成「GUI」就不会弹出黑框;如果需要查看程序输出(比如调试),保留「Console」即可
- 点击左上角「Build wrapper」,等待生成exe,重复上述步骤制作
Client.exe
如果你的Java版本是14及以上,也可以用官方自带的jpackage工具,命令行直接生成:
- 生成Server.exe:
jpackage --type exe --input . --main-jar Server.jar --main-class Server --name Server - 隐藏控制台窗口:添加参数
--win-console false(适合无交互的服务端)
关于运行时是否弹出CMD窗口
完全取决于你的打包设置:
- 选「Console」模式(Launch4j)或不加
--win-console false参数(jpackage):运行exe时会弹出CMD窗口,和你在NetBeans里测试的效果一致 - 选「GUI」模式(Launch4j)或加
--win-console false参数(jpackage):不会弹出黑框,程序在后台运行(如果你的客户端需要输入输出,建议保留Console模式)
内容的提问来源于stack exchange,提问作者Anthony
相关产品推荐
相关产品推荐

