我的Java开发学习之旅Windows系统下如何运行.jar文件?
Posted 欧阳鹏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的Java开发学习之旅Windows系统下如何运行.jar文件?相关的知识,希望对你有一定的参考价值。
一、需求描述
今天查询大数据平台,看到刚刚发布的APP版本有crash,然后平台上的crash都是混淆的样子,类似如下所示:
所以我得使用proguardgui.jar工具来进行反混淆,查看出现问题的代码在哪里。
但是我准备打开proguardgui.jar工具的时候,发现打不开,如下所示:
C:\\android\\SDK\\tools\\proguard\\lib\\proguardgui.jar
工具被7zip压缩软件当做压缩包了。
直接双击,打开,如下所示,展开了jar包的内容。
但是实际上我是想运行这个C:\\Android\\SDK\\tools\\proguard\\lib\\proguardgui.jar
工具啊!
二、运行jar包
2.1 直接使用命令
- ctrl+r进入CMD模式
- 输入 java -jar XXX.jar
在cmd窗口,输入java -jar
,接着把jar文件直接拖进cmd窗口,则会自动填充这个jar包的完整路径,如下所示:
Microsoft Windows [Version 10.0.18363.1500]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\\Users\\000>java -jar C:\\Android\\SDK\\tools\\proguard\\lib\\proguardgui.jar
输入如上所示的命令,直接打开。
这个方法方便是方便,但是每次启动都得在cmd窗口输入java -jar XXX.jar
命令才可以运行。用的多了,也会显得麻烦,让人无法忍受。
2.2 bat文件运行jar文件
上面的命令可以写入到bat文件中,这样直接双击bat文件就可以运行该jar文件了。
突然,我脑袋机灵了一会,想起来直接好像是直接运行.bat
文件,没有直接运行.jar
文件的,然后在C:\\Android\\SDK\\tools\\proguard\\bin
目录下找到了proguardgui.bat
文件。
proguardgui.bat
文件内容如下:
@ECHO OFF
REM Start-up script for the GUI of ProGuard -- free class file shrinker,
REM optimizer, obfuscator, and preverifier for Java bytecode.
REM
REM Note: when passing file names containing spaces to this script,
REM you'll have to add escaped quotes around them, e.g.
REM "\\"C:/My Directory/My File.txt\\""
IF EXIST "%PROGUARD_HOME%" GOTO home
SET PROGUARD_HOME=..
:home
java -jar "%PROGUARD_HOME%"\\lib\\proguardgui.jar %*
上面的bat,核心代码还是java -jar xxx.jar*
双击bat文件,可以直接打开
然后就打开了
此方法麻烦的地方在于每个jar文件都需要建立一个对应的bat脚本文件。
当然也可以写一个通用的bat文件,然后拖动jar到bat文件上,即可执行jar文件
比如,我们写一个 run_jar.bat 脚本文件,内容如下
@echo off
java -jar %1
pause
然后拖动jar到bat文件上,即可执行jar文件
2.3 一劳永逸的方法
方法一,方便是方便,但是每次启动都得在cmd窗口输入java -jar XXX.jar
命令才可以运行。
方法二,也需要写个bat脚本文件,或者每个jar包写一个对应的bat脚本,或者写个通用的bat脚本。
用的多了,也会显得麻烦,有没有什么一劳永逸的方法呢?
答案是有的,我们修改jar包的打开方式。
- 找到javaw.exe
我们右键proguardgui.jar,选择【打开方式】
然后我们【选择其他应用(C)】
点击【更多应用】
滚动到最下面,选择【在这台电脑上查找其他应用】
找到JDK安装目录,找到JDK目录下的javaw.exewe文件,如下所示:
我的电脑上,路径为:
C:\\Android\\JDK\\JDK1.8\\bin\\javaw.exe
选中javaw.exe文件,然后选择【打开】
但是此时还是打不开,我们右键proguardgui.jar文件,选择上【Java(TM)Platform Se binary】,然后勾选上【始终使用此应用打开.jar文件】
这样jar文件的图标就会显示为咖啡杯,但还不能正常打开。
- 修改注册表
-
win+R打开命令行窗口,输入regedit打开注册表:
-
找到“HKEY_CLASSES_ROOT\\Applications\\javaw.exe\\shell\\open\\command”,右键选择“修改”
- 在文本框中加入“-jar”,其他的东西不要动。
(这里需要注意!!!输入的形式一定要如同下图,-jar插入到“%1”前,且-jar要与其前后内容都有一个空格隔开。一定要注意空格!空格!空格!)
点击“确定”,此时,双击,jar文件就可以直接打开了。
2.4 鼠标右键方法
当然我们也可以直接写注册脚本,如下 所示:
2.4.1 注册鼠标右键菜单
我们新建一个regiser.reg
文件
regiser.reg
文件内容如下所示:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\*\\shell\\JarRun]
@="Run Jar"
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\*\\shell\\JarRun\\command]
@="C:\\\\Android\\\\JDK\\\\JDK1.8\\\\javaw.exe -jar \\"%1\\""
双击运行regiser.reg
文件,会弹出下面的对话框,点击【是(Y)】
注册成功
我们可以去注册表编辑器查看
选中jar文件,右键选择【Run Jar】即可运行了。
2.4.2 删除鼠标右键菜单
如果欲删除此右键菜单,则将如下内容保存为unregiser.reg
文件,如下:
unregiser.reg
文件代码如下所示:
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\*\\shell\\JarRun]
[-HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\*\\shell\\JarRun\\command]
双击运行unregiser.reg
文件,弹出如下对话框,选择【是(Y)】
刚刚注册的右键菜单就被删除了
以上是关于我的Java开发学习之旅Windows系统下如何运行.jar文件?的主要内容,如果未能解决你的问题,请参考以下文章
我的OpenGL学习进阶之旅如何抽取着色器代码到assets目录下的GLSL文件,以及如何通过Java或者C++代码来加载着GLSL文件?
我的C/C++语言学习进阶之旅JNI开发之转换C层返回的结构体为Java实体Bean