前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用 Java 写个沙盒塔防游戏!已上架 Steam,Apple Store

用 Java 写个沙盒塔防游戏!已上架 Steam,Apple Store

作者头像
Guide哥
发布2022-01-05 08:27:45
1.2K0
发布2022-01-05 08:27:45
举报
文章被收录于专栏:JavaGuide

你好,我是 Guide!这里是 JavaGuide 的开源项目推荐第 2 期,每一期我都会精选 5 个高质量的 Java 开源项目推荐给大家。

既然立了 Flag ,那就不能说说而已!昨晚简单把最近遇到的一些优质 Java 开源项目整理了一下 👇。

上一期的项目推荐 👉:换掉 Postman + Swagger + JMeter,这 5 个 Java 项目绝了!

今天推荐的 5 个项目是:

  • Mindustry :一款 Java 语言编写的沙盒塔防游戏,目前已经上架 Apple Store 和 Steam。
  • Caffeine :性能超强的本地缓存解决方案。
  • JADX : 一款强大的反编译工具。
  • Debezium :一个用于追踪数据更改(change data capture ,CDC)的开源项目。你可以通过 Debezium 轻松实现数据同步,将一个数据源中的数据同步到其他数据源,比如将 MySQL 中的数据同步到 ES 中。
  • JNDI-Injection-Exploit :一个开箱即用的 JNDI 注入工具。

这 5 个开源项目已经被收录进了 awesome-java (非常棒的 Java 开源项目集合,找 Java 项目必备)。

  • Github 地址:https://github.com/CodingDocs/awesome-java
  • Gitee 地址:https://gitee.com/SnailClimb/awesome-java

好了,废话不多说了!正式开始项目推荐。

Mindustry:沙盒塔防游戏

Mindustry 是一款 Java 语言编写的沙盒塔防游戏,目前已经上架 Apple Store、Google Play 和 Steam,支持 Windows,Linux,安卓等平台。

是的!!!你没看错,这款游戏就是使用 Java 语言编写的。

目前的话,这个游戏在 Apple Store 评分 4.7,Google Play 评分 4.6, Steam 上也有 96% 的好评。非常厉害了!

这个游戏的很多用户直呼:“一玩就停不下来了!”

另外,这个项目使用 Gradle 构建,如果你想要在本地运行这个游戏的话,你的 JDK 版本至少是 JDK16。

作者在 README 文档中提供了这个项目详细的运行方法,你可以直接在本地对游戏进行修改。

不过,最让我佩服的是这个项目作者的毅力。虽然这个游戏已经发布 4 年多了,但是作者依然还在不断维护游戏,不断完善游戏的玩法。

大家感受一下项目作者的提交记录吧!简直恐怖如斯!

  • 项目地址:https://github.com/Anuken/Mindustry
  • 官网:https://mindustrygame.github.io/

Caffeine:本地缓存之王

Caffeine 是一款强大的本地缓存解决方案,性能非常 🐂。

有多牛呢?看下 Caffeine 和其他可以提供本地缓存的工具的性能对比吧!

Caffeine 和 Guava 一样,通过 API 的方式即可使用缓存。

代码语言:javascript
复制
LoadingCache<Key, Graph> graphs = Caffeine.newBuilder()
    .maximumSize(10_000)
    .expireAfterWrite(Duration.ofMinutes(5))
    .refreshAfterWrite(Duration.ofMinutes(1))
    .build(key -> createExpensiveGraph(key));

不过,相比于 Guava 提供的缓存功能来说 Caffeine 在各个方面都要更加优秀。像 Redisson、Cassandra、Hbase、Neo4j、Druid 等知名开源项目都用到了 Caffeine。

JADX:强大的反编译工具

jadx 是一款功能强大的反编译工具,使用起来简单方便,不光提供了命令行程序,还提供了 GUI 程序。一般情况下,我们直接使用 GUI 程序就可以了。

jadx 支持 Windows、Linux、 macOS,能够帮我们打开.apk, .dex, .jar,.zip等格式的文件

就比如说我们需要反编译一个 jar 包查看其源码的话,直接将 jar 包拖入到 jadx 中就可以了。效果如下:

再比如说我们想看看某个 apk 的源码,我们拿到 apk 之后直接拖入进 jadx 中就可以了。效果如下:

除此之外,这个工具具备下面这些特性:

  • 自带强大的搜索功能,支持多种匹配模式;
  • 支持查看类,变量或者方法使用情况;
  • 支持在源码中添加注释
  • 支持反混淆
  • ......

这个工具使用起来还挺简单的,立个 flag :下周出一篇 JADX 使用介绍的文章。

项目地址:https://github.com/skylot/jadx

Debezium:追踪数据更改

Debezium 是一个用于追踪数据更改(change data capture ,CDC)的开源项目,基于 Java 语言,利用 Kafka 和 Kafka Connect 实现持久性、可靠性和容错性,工作原理类似大家比较熟悉的 Canal、Maxwell,通过数据库日志来获取变更。

CDC(Change Data Capture)是一种软件设计模式,用于确定和跟踪已变更的数据,以便可以对更改后的数据采取措施,

Debezium 已经支持 MySQL、PostgreSQL、Oracle、Cassandra、MongoDB、SQL Server 等数据库。

你可以使用 Debezium 来监控你的数据库,每一个提交的行级别(row-level)的更改都会被捕获。因此,你可以通过 Debezium 轻松实现数据同步,将一个数据源中的数据同步到其他数据源,比如将 MySQL 中的数据同步到 ES 中。

下图是基于 Debezium 追踪数据更改常见的一种架构:

相对于 ETL 数据同步方案来说,Debezium 这种方式更加灵活。

Debezium 的官方文档中还介绍了很多其他有价值的使用场景,感兴趣的小伙伴可以自己去看看。

Debezium常见适用场景

  • 项目地址 :https://github.com/debezium/debezium
  • 中文介绍:https://github.com/debezium/debezium/blob/main/README_ZH.md
  • 官网:https://debezium.io/
  • 官方文档:https://debezium.io/documentation/

相关文章推荐:

JNDI-Injection-Exploit:JNDI 注入工具

JNDI-Injection-Exploit 这个项目是一个开箱即用的 JNDI 注入工具,用于生成 JNDI 链接并启动后端相关服务,可用于 Fastjson、Jackson 等相关漏洞的验证。

JNDI 是什么呢? 简单来说,JNDI (Java Naming and Directory Interface) 是一组应用程序接口,类似于一个索引中心,它允许客户端通过 jndiName 来定位用户、网络、机器、对象和服务等各种资源。

代码语言:javascript
复制
//指定需要查找name的名称
String jndiName= "jndiName";
//初始化默认环境
Context context = new InitialContext();
//查找该name对应的资源部
context.lookup(jndiName);

当 jndiName 变量可控时,如果获取到的资源是远程 class 文件的话,就可能会触发执行恶意代码,这也就是我们常说的 JNDI 注入。

JNDI 这家伙带来了很多重大的漏洞,就比如前段时间技术圈刷屏的 Log4j2 重大漏洞就是这玩意引起的。

项目地址:https://github.com/welk1n/JNDI-Injection-Exploit

参考资料

[1]深入理解 JNDI 注入与 Java 反序列化漏洞利用: https://kingx.me/Exploit-Java-Deserialization-with-RMI.html

[2]log4j2 漏洞简单小计: https://juejin.cn/post/7042458032701177887

·········· END ··············

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JavaGuide 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mindustry:沙盒塔防游戏
  • Caffeine:本地缓存之王
  • JADX:强大的反编译工具
  • Debezium:追踪数据更改
  • JNDI-Injection-Exploit:JNDI 注入工具
    • 参考资料
    相关产品与服务
    云数据库 MySQL
    腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档