Mac 安装 Java 反编译工具 JD-GUI

news2024/9/23 23:34:40

Mac 安装 Java 反编译工具 JD-GUI
JD-GUI 是一款 Java 反编译工具,可以方便的将编译好的 .class 文件反编译为 .java 源码文件,用于开发调试、源码学习等。

官网地址:http://java-decompiler.github.io

Git 地址:https://github.com/java-decompiler/jd-gui

安装
方式一:

下载地址:https://github.com/java-decompiler/jd-gui/releases

选择对应平台的资源进行下载,这里可选择:jd-gui-osx-1.6.6.tar


方式二:

利用 brew 安装(该方式需要先安装 brew cask)打开终端窗口,输入下面命令:

brew cask install jd-gui

➜  brew cask install jd-gui
Error: Unknown command: cask
1
2
3
4
如果该命令找不到,可用下面的命令:

➜  ~ brew install --cask jd-gui
==> Downloading https://github.com/java-decompiler/jd-gui/releases/download/v1.6.6/jd-gui-osx-1.6.6.tar
==> Downloading from https://objects.githubusercontent.com/github-production-release-asset-2e65be/32844456/fa071080-272d-11ea-8371-7bb24509723f?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20211
######################################################################## 100.0%
==> Installing Cask jd-gui
==> Moving App 'JD-GUI.app' to '/Applications/JD-GUI.app'
🍺  jd-gui was successfully installed!
1
2
3
4
5
6
7
安装结果:

如果没有安装 brew cask,输入brew install --cask jd-gui命令,可能会出现以下错误:

Error: Invalid cask: /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/Casks/hazeover.rb
Cask 'hazeover' is unreadable: undefined method `csv' for "1.8.9,1050,10.13":Cask::DSL::Version
1
2
brew cask 可参考博客:https://blog.csdn.net/m0_46197393/article/details/106752367

使用
直接打开

注意事项
1.打开提示找不到合适的 Java 版本

查看 JD-GUI.app 中的内容(访达->应用程序->JD-GUI->右键 查看包内容),发现实际上还是执行的 JD-GUI 的 jar 包在JD-GUI.app/Contents/Resources目录下,是通过sh脚本文件启动的,脚本文件在JD-GUI.app/Contents/MacOS/universalJavaApplicationStub.sh中,修改该脚本文件即可。

可以看出该错误正是235行抛出的错误,这里主要是对Java版本做一个判断。

在这里插入图片描述
一个简单的处理办法就是,将其else分支中的内容改为 Java 命令的路径,而不是直接抛出错误。查看 Java 命令路径可以使用which java

 

➜  ~ which java
/usr/bin/java[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bfZ5Es4X-1638524064149)(/Users/heguitang/Library/Application Support/typora-user-images/image-20211203163924237.png)]

 


2.解决在 macOS 下闪退问题

有时候,一台电脑上会装多个 JDK,需要注意的是,运行 JD-GUI 所需 Java 版本最高为 JDK 10.0.2(可在官网文档查看),否则会出现闪退、无法使用等问题,所以需要修改设置进行指定。

首先,使用如下命令,查看 jdk 的安装路径:

# 这里查找 1.8 的路径,根据自己电脑上JDK情况而定
➜ /usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home
1
2
3
其次,使用文本编辑器打开文件 /Applications/JD-GUI.app/Contents/MacOS/universalJavaApplicationStub.sh,修改如下部分:

# first check system variable "$JAVA_HOME"
# 这里的配置默认找的是系统环境变量中配置的 jdk 版本
# 而我配置的是 Java11,所以直接运行的时候出现闪退而无法使用
# 这里需要直接写死 1.8 的路径
if [ -n "$JAVA_HOME" ] ; then
    JAVACMD="/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home/bin/java"
1
2
3
4
5
6
保存后,重新打开 JD-GUI.app 即可。

3.还是打不开

采用安装的方式一,直接解压打开,不要太执着;

使用 Java 命令运行

直接进去 cd 进入到JD-GUI.app/Contents/Resources/Java目录,然后java -jar jd-gui-1.6.6-min.jar(后面为你自己的jar包名字)来执行
————————————————
版权声明:本文为CSDN博主「梦想的优惠券」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_37958845/article/details/121703791

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/377033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

直播美颜sdk是什么?它是怎么让用户”变美“的?

如今,直播美颜sdk、手机摄影、短视频以及社交软件的盛行,让“拍照”成为人们日常生活中不可或缺的一部分。随着直播美颜sdk技术的不断升级,手机摄影的质量也越来越高。有统计数据显示,2018年中国智能手机用户已经达到了7亿人&…

美国最新调查显示 50% 企业已在用 ChatGPT,其中 48% 已让其代替员工,你怎么看?

美国企业开始使用ChatGPT,我认为这不是什么新闻。 如果美国的企业现在还不使用ChatGPT,那才是个大新闻。 据新闻源显示,已经使用chatGPT的企业中,48%已经让其代替员工工作。 ChatGPT的具体职责包括:客服、代码编写、招…

HTB-remote

HTB-remote信息搜集开机提权信息搜集 nmap 较为感兴趣的端口: 2180nfs 首先尝试21端口,可以看到并没有文件在ftp服务器里面,而且也无法上传文件。 80端口。 在contact里面找到了能够登录的网站。 经过简单的测试发现可能不存在sql注…

逆向、安全、工具集

0、安卓逆向环境 r0env 原味镜像介绍文章:https://mp.weixin.qq.com/s/gBdcaAx8EInRXPUGeJ5ljQ 原味镜像介绍视频:https://www.bilibili.com/video/BV1qQ4y1R7wW/ 百度盘:链接:https://pan.baidu.com/s/1anvG0Ol_qICt8u7q5_eQJw 提取码:3x2a …

【Spring源码】Spring AOP的核心概念

废话版什么是AOP关于什么是AOP,这里还是要简单介绍下AOP,Aspect Oriented Programming,面向切面编程,通过预编译和运行期间提供动态代理的方式实现程序功能的统一维护,使用AOP可以降低各个部分的耦合度,提高…

openfeign负载均衡策略 | Spring Cloud 5

一、Spring Cloud LoadBalancer介绍 Spring Cloud LoadBalancer是Spring Cloud官网提供的一个客户端负载均衡器,功能类似于Ribbon。在Spring Cloud Nacos 2021移除了中Ribbon组件,Spring Cloud在Spring Cloud Commons项目中,添加了Spring Cl…

华为OD机试题,用 Java 解【N 进制减法】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

Linux | 分布式版本控制工具Git【版本管理 + 远程仓库克隆】

文章目录一、前言二、有关git的相关历史介绍三、Git版本管理1、感性理解 —— 大学生实验报告2、程序员与产品经理3、张三的CEO之路 —— 版本管理工具的诞生四、如何在Linux上使用Git1、创建仓库2、将仓库克隆到本地3、git三板斧① git add② git commit③ git push4、有关git…

yarn run serve报错Error: Cannot find module ‘@vue/cli-plugin-babel‘ 的解决办法

问题概述 关于这个问题,是在构建前端工程的时候遇到的,项目构建完成后,“yarn run serve”启动项目时,出现的问题:“ Error: Cannot find module ‘vue/cli-plugin-babel‘ ” 如下图: 具体信息如下&…

(24秋招笔试准备)回溯专题--代码随想录刷题记录

回溯算法理论基础回溯三部曲:编辑切换为居中添加图片注释,不超过 140 字(可选)组合问题https://mp.weixin.qq.com/s/OnBjbLzuipWz_u4QfmgcqQ组合总和https://mp.weixin.qq.com/s/HX7WW6ixbFZJASkRnCTC3whttps://mp.weixin.qq.com/…

Linux系统认知——驱动认知

文章目录一、驱动相关概念1.什么是驱动2.被驱动设备分类3.设备文件的主设备号和次设备号4.设备驱动整体调用过程二、基于框架编写驱动代码1.驱动代码框架2.驱动代码的编译和测试三、树莓派I/O口驱动的编写1.微机的总线地址、物理地址、虚拟地址介绍2.通过树莓派芯片手册确定需要…

zabbix部署

文章目录前言一、zabbix简介二、zabbix下载与部署三、部署完成、访问前端测试前言 一、zabbix简介 Zabbix 是一个企业级分布式开源监控解决方案。Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置…

数据结构与算法——4时间复杂度分析(常见的大O阶)

这篇文章是时间复杂度分析的第二篇。在前一篇文章中,我们从0推导出了为什么要用时间复杂度,时间复杂度如何分析以及时间复杂度的表示三部分内容。这篇文章,是对一些常用的时间复杂度进行一个总结,相当于是一个小结论 1.常见的大O…

【LeetCode】剑指 Offer(11)

目录 题目:剑指 Offer 29. 顺时针打印矩阵 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 题目:剑指 Offer 29. 顺时针…

西电计算机通信与网络(计网)简答题计算题核心考点汇总(期末真题+核心考点)

文章目录前言一、简答计算题真题概览二、网桥,交换机和路由器三、ARQ协议四、曼彻斯特编码和差分曼彻斯特编码五、CRC六、ARP协议七、LAN相关协议计算前言 主要针对西安电子科技大学《计算机通信与网络》的核心考点进行汇总,包含总共26章的核心简答。 【…

华为OD机试模拟题 用 C++ 实现 - 自动曝光(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 最多获得的短信条数(2023.Q1)) 文章目录 最近更新的博客使用说明自动曝光题目输入输出描述示例一输入输出说明示例二输入输出说明Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出࿰

Ubuntu搭建maven私服

1.安装JDK8 已经是JDK8的需要配置环境变量,如果是更高版本的JDK则需要修改nexus配置文件 2.下载nexus安装包 百度网盘下载:链接:https://pan.baidu.com/s/1DfKqql8tZNQXEBxAEH7UyA 提取码:hx4p安装到有磁盘的目录如下所示&…

大数据框架之Hadoop:MapReduce(三)MapReduce框架原理——Join多种应用

3.7.1Reduce Join 1、工作原理 Map端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。 Reduce端的主要工作:在Reduc…

C++杂谈(一)

前言 本系列也是慢更系列,主要收纳一些还不够单独成系列的C的杂项问题,或是一些与C有关,但不属于核心知识的一些旁系问题。 关于C与C的关系 「学C要先学C吗?」 「C和C是不是完全不同的两个语言?」 「这个语法是C的还…

Nginx网站服务——Nginx虚拟主机(基于域名、IP、端口)附带超详细实验步骤

文章目录一、基于域名的nginx虚拟主机1、基于域名的nginx虚拟主机的操作步骤2、实例操作:基于域名的nginx虚拟主机二、基于IP的nginx虚拟主机1、基于IP的nginx虚拟主机的操作步骤2、实例操作:基于IP的nginx虚拟主机三、基于端口的nginx虚拟主机1、基于端…