用jar包运行带GUI的java游戏
这是从某论坛下载的java游戏demo,由于年代久远,所以没有记下出处。重要的是,这是一个带GUI的java程序。
链接: https://pan.baidu.com/s/1LjQ2bQPXvW-ti7LvlBdu6A 密码: 1tsf (包含源代码)
首先演示如何直接运行这游戏,因为这里使用的是命令行,所以要在环境变量中配置好jdk的路径。

可以看到Main类的相对路径为.\org\loon\game\simple\sokoban\main
但是要运行Main.class,还得在名为SokobanSimple的目录下,因为以上的路径包含着Main的包名,java用包(package)来标识不同的命名空间,在操作系统中就是文件夹,所以Main类的完整名称应该为org.loon.game.simple.sokoban.main.Main
在SokobanSimple目录下打开命令行,win7系统可以直接用shift + 鼠标右键点击目录中空白地方就会弹出“在此处打开命令窗口”的选项;也可以运行cmd.exe进入命令行,再进入SokobanSimple目录。
在命令行中运行:java org.loon.game.simple.sokoban.main.Main

即可打开游戏。

但是想直接用鼠标双击的方式打开游戏,就像打开其他语言写的可执行文件,那该怎么办呢?
首先找到游戏的主程序名,也就是完整的类名:org.loon.game.simple.sokoban.main.Main 记住它!!!
接着,还是在SokobanSimple里打开命令行窗口。
键入命令: jar -cvf SokobanSimple.jar image org
(有关jar命令的详解请在命令行里键入:jar -help)

将image和org这两个包压缩成jar包成功!
这时可以看到SokobanSimple里有一个jar包。

但是我们双击它时发现游戏还是没有运行起来。
这是因为jar包中有个配置信息还没写,这配置信息用来表示jar中的主类。
接下来用压缩工具查看jar包。打开META-INF文件夹,用记事本打开一个叫MANIFEST.MF的配置文件,
并在下面一行添加一条配置信息: Main-Class: org.loon.game.simple.sokoban.main.Main
格式为 Main-Class:(这里有一个空格)完整主类名 这里的主类名即是org.loon.game.simple.sokoban.main.Main
若是可以的话,直接在压缩包里保存修改,如下图。



接下来双击SokobanSimple.jar,可以运行了!

用jar包运行带GUI的java游戏的更多相关文章
- springboot项目jar包运行
springboot项目jar包运行 参考 Linux后台运行java的jar包 步骤 进入maven项目中,打包项目. mvn package -Dmaven.test.skip=true 运行ja ...
- AndroidStudio开发Java工程(解决java控制台中文打印乱码+导入jar包运行工程)
这篇分享一点个人AS开发java工程经验,虽然有时候还是得打开eclipse来运行java项目,但能用AS的时候还是尽量用AS,毕竟一个字,爽~ 废话不多说,进入正题. 一.开发Java工程 你有两种 ...
- 双击jar包运行方法
方案一 在jar包同级,写个bat文件,如下 java -jar Xxx.jar pause 方案二 右击jar文件 ->打开方式->选择安装的jre/bin/javaw.exe. 双击依 ...
- jar包运行出现中文乱码的问题
写了一个java Project,在eclipse里运行的时候不会出现乱码,但是用jar包运行的时候,出现了中文乱码. 我将它包装成了一个文件,这样就在没有jre的机器上也可以运行了.start.ba ...
- Spring Boot部署之jar包运行
上篇阐述了Spring Boot war部署项目,本篇阐述另一种运行方式:jar包运行. 一.打jar包 1.修改pom.xml配置 2.执行package(对于module执行package之前需要 ...
- Spark2 jar包运行完成,退出spark,释放资源
import org.apache.spark.sql.SparkSession import org.apache.spark.sql.Dataset import org.apache.spark ...
- DOS窗口带jar包运行java程序
由于工作环境的问题,有过一次这样的测试,需要在DOS窗口运行带有jar包的java程序 编译命令如下: javac -Djava.ext.dirs=./lib Test.java 或 javac -D ...
- zzw原创_cmd下带jar包运行提示 “错误: 找不到或无法加载主类 ”
在windows下编译java,由于是临时测试一下文件,不想改classpath,就在命令行中用 -cp 或classpath引入jar包,用javac编译成功,便使用java带-cp 或classp ...
- java jar包运行方法
http://java-beginner-liyun.iteye.com/blog/736752一.怎么打jar包 第一步:选中要打jar包的工程 第二步:鼠标右击,选择Export... 第三步:选 ...
随机推荐
- redis缓存穿透和缓存失效的预防和解决
缓存穿透: 认识 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透. 解决办法: 对所 ...
- composer install 失败,无法用 unzip 解压归档、proc_open() 函数未支持
前言 记得最近好像有不只一个朋友问过 composer install 安装依赖时出现异常,导致项目无法运行.下面简单记录一下其中 2 个比较频繁问题的解决办法. 问题 & 解决 1.unzi ...
- 快速链接bioconductor,以及安装“XML”
options(useHTTPS=FALSE, BioC_mirror="http://bioconductor.org") source("http://biocond ...
- 接口与协议学习笔记-AMBA片上通信协议_APB_AHB_AXI_AXI4不同版本(二)
随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大.数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SOC设计中得到了广泛应用.在基于IP复用的SoC设计中,片上总线设计是最 ...
- JQuery第二天——JQuery的DOM操作
JQuery拥有隐式迭代和显式迭代 因为JQuery为类数组对象,可以使用手动遍历实现显式 .each():也可以使用 $("p").click(function(){ var t ...
- Noip前的大抱佛脚----根号对数算法
根号算法 分块 数列分块入门九题(hzwer) 入门题1,2,3,4,5,7 问题:给一段区间打上标记后单点查询 解法:主要是每块维护一些标记,计算答案等,此类分块较为简单 注意:块大小一般为\(\s ...
- 【HNOI2013】数列
题面 题解 设\(\{a_n\}\)为差分数组,可以得到柿子: \[ \begin{aligned} ans &= \sum_{a_1 = 1} ^ m \sum_{a_2 = 1} ^ m ...
- jvm系列 (一) ---jvm内存区域与溢出
jvm内存区域与溢出 目录 jvm系列(一):jvm内存区域与溢出 jvm系列(二):垃圾收集器与内存分配策略 为什么学习jvm 木板原理,最短的一块板决定一个水的深度,当一个系统垃圾收集成为瓶颈的时 ...
- 关于Netty的学习前总结
摘要 前段时间一直在学习netty因为工作忙的原因没有写一个学习的总结,今天抽个空先把总结写了吧.事先声明,本文不会详细的介绍每一个部分不过每个部分都会附上讲解详细的url.本文只是为了解释通Nett ...
- 【Unity Shader】(十) ------ UV动画原理及简易实现
笔者使用的是 Unity 2018.2.0f2 + VS2017,建议读者使用与 Unity 2018 相近的版本,避免一些因为版本不一致而出现的问题. [Unity Shader](三) ----- ...