Java通过cmd命令进行运行class文件,并传递参数,脚本编写_命令行执行class文件-程序员宅基地

技术标签: java  开发语言  

  1. 目录

    1: 编写helloWord

    2: 进行class文件的编译:

    3:运行class文件

    4:类加载过程:

    5:传递参数

    6:编写bat脚本进行运行


1: 编写helloWord

public class HelloWord {

    public static void main(String[] args)  {

        System.out.println("HelloWord" );

    }

}

2: 进行class文件的编译:

Java的class文件是java程序编译后生成的二进制文件,包含了完整的代码,类信息,方法信息等内容。

class文件可以在任何安装了java虚拟机的计算机上进行运行,所以,必须要有java的基础环境。

可以首先进行环境配置,输入java  -version 进行换进验证

然后输入javac 验证编译功能

输入javac HelloWord.java 进行编译成class文件

编译成功后出现HelloWord.class文件

3:运行class文件

输入java HelloWord进行运行class文件,不需要输入class后缀

出现上述情况,则是自己的文件中有包路径,进行删除

然后再运行

如上图所示,则输出HelloWord字样。

4:类加载过程:

例如加载HelloWorld的时候的类加载过程

1、寻找jre目录,寻找jvm.dll,并初始化JVM;

2、产生一个Bootstrap Loader(启动类加载器);

3、Bootstrap Loader自动加载Extended Loader(标准扩展类加载器),并将其父Loader设为Bootstrap Loader。

4、Bootstrap Loader自动加载AppClass Loader(应用/系统类加载器),并将其父Loader设为Extended Loader。

5、最后由AppClass Loader加载HelloWorld类。

5:传递参数

修改代码输入参数,如果想带上参数运行程序,可以在命令行中添加参数

public class HelloWord {
    public static void main(String[] args)  {
        if(args == null || args.length ==0){
            System.out.println("no data");
        }else {
            for(int i =0 ;i< args.length ;i++){
                System.out.println("args==> " + args[i]);
            }
        }
    }
}

6:编写bat脚本进行运行

@echo off
rem 提供Windows下测试运行class
 
echo ==================begin========================
 
cls 

set HelloWord_DIR=./
set data1=1
set data2=2
set data3=3

color 0a 
TITLE HelloWord 
 
CLS 
 
echo. 
echo. ** HelloWord  *** 
echo. 
 
:MENU 
 
::*************************************************************************************************************
echo. 
	echo.  [1] 启动HelloWord
	echo.  [2] 关闭HelloWord
echo. 
 
echo.请输入选择的序号:
set /p ID=
	IF "%id%"=="1" GOTO start 
	IF "%id%"=="2" GOTO close 
PAUSE 
 
::*************************************************************************************************************
::启动
:start 
	call :startHelloWord
	GOTO MENU
 

:startHelloWord
	echo. 
	echo.启动HelloWord...... 
	IF NOT EXIST "%HelloWord_DIR%HelloWord.class" (
        echo "%HelloWord_DIR%HelloWord.class"不存在
        goto :eof
     )
 
	cd "%HelloWord_DIR%" 
 
	IF EXIST "%HelloWord_DIR%HelloWord.class" (
		java  HelloWord %data1% %data2% %data3%
	)
	echo.OK
	goto :eof
	

::*************************************************************************************************************
::关闭
:close 
	call :closeHelloWord
	GOTO MENU
 
:closeHelloWord
	echo. 
	echo.关闭HelloWord...... 
	echo.中国人不骗中国人
	timeout /nobreak /t 5
	msg %username% /time:5  5秒后自动关闭窗口!
	exit

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41986096/article/details/131328311

智能推荐

面试官:啥是集群策略啊?-程序员宅基地

文章浏览阅读290次。之前有读者问了 Dubbo Cluster 集群的一些问题。那么本文聊一聊Dubbo 的 Cluster 集群和 Failover Cluster (失败自动切换)策略。如果没有特别说明..._sticky invoker

Mysql8.0的安装_安装mysql-8.0.20-linux-glibc-程序员宅基地

文章浏览阅读498次。generated for root@localhost: SQqy8#7#5PUK 临时密码。vi /etc/my.cnf 修改配置文件。3、创新用户与用户组以及修改权限。_安装mysql-8.0.20-linux-glibc

python类之间变量互相调用_python两个类之间变量和函数的调用-程序员宅基地

文章浏览阅读1.1k次。1.class_a()class_b()2.class_b使用class_a中的变量和函数3.变量class_a中:class_a.num=...函数class_b中:先实例化class_a(如果在class_a中有初始化,则此时还会初始化一次,为避免二次初始化可以把class_a中的初始化不写为初始化函数), 然后调用函数在调用函数中再调用的函数里用到的class_a的变量,也必须在class..._python 类a 调用类b的函数

TypeScript 从入门到进阶之基础篇(八)函数篇-程序员宅基地

文章浏览阅读983次,点赞24次,收藏21次。函数是一种可重复使用的代码块,是构建应用的一块基石。在本章我们将学习TypeScript 中如何定义函数。在JavaScript中,函数可以被定义、调用和传递给其他函数作为参数。函数可以用来组织代码,使其更加模块化和可读性,同时也提供了代码的重用性和灵活性。在TypeScript 使用函数的方法是直接定义函数所需参数的类型,也是最基本的用法//箭头函数写法需要注意的是 但我们的函数没有返回值时 ,就不能定义这个函数的返回值类型 (void除外)//正确写法//正确写法2。

u-center软件配置Ublox NEO-M8T详细教程-程序员宅基地

文章浏览阅读1.4w次,点赞13次,收藏80次。1.使用u-center软件时请先检查驱动是否安装完成(如CH340/PL2303),后连接数据线等。2.打开u-center软件,在左上角选择正确的串口及波特率,一般NE0-M8默认波特率为115200.3.配置M8模块的功能,如选择北斗/GPS/GLONASS等功能左上角点message view 或者config view 或F9/CTRL+F9,进入配置页面。如图标红区域4.按F9进入CFG界面,选择UBX选项卡,有时候UBX没有弹出菜单,显示为灰色,这时候可以等十几秒在单击灰色的UB_u-center

oracle的索引不可用,Oracle异常处理——ORA-01502:索引或这类索引的分区处于不可用状态...-程序员宅基地

文章浏览阅读722次。Oracle异常处理——ORA-01502:索引或这类索引的分区处于不可用状态参考自:https://www.cnblogs.com/lijiaman/p/9277149.html1、原因分析经过查证,发现是在删除分区的时候,导致分区表上的唯一性全局索引为不可用状态,导致新的数据无法正常插入,从而引发了该错误。是不是索引不可用会导致DML操作失败呢?经过验证,发现以下特点:(1)对于非唯一性索引,..._errorora-01502: 索引 'data168.pk_yunqu_call_sdr' 或这类索引的分区处于不可用

随便推点

易语言多线程封装线程启动返回句柄_易语言取线程句柄-程序员宅基地

文章浏览阅读6.7k次。封装多线程模块-线程启动• 1、CreateThread• 2、线程_启动_句柄()• 3、线程_启动_逻辑()• 4、线程句柄• 5、线程ID• 6、易语言SHCreateThread511遇见易语言多线程大漠多线程SHCreateThread function | Microsoft Docs https://docs.microsoft.com/zh-cn/windows/desktop/api/shlwapi/nf-shlwapi-shcreatethread.版本 _易语言取线程句柄

禁忌搜索算法求解TSP旅行商问题C++(2020.11.19)-程序员宅基地

文章浏览阅读3.5k次,点赞6次,收藏27次。TS算法求解TSP问题C++1、禁忌搜索算法1.1 基本思想及主要特点1.2 基本概念1.3 算法流程22.1 主函数1、禁忌搜索算法 禁忌搜索算法(tabu search/taboo search,TS)是一种模拟人类记忆功能特性的全局性搜索算法。它最初是由Glover提出的,主要用于解决组合优化问题,与局部优化法相比陷入局部极小值的概率更小,比遗传算法、模拟退火算法更易于利用问题的特殊信息。因此,它具有很强

突破编程_C++_C++11新特性(智能指针shared_ptr与weak_ptr)-程序员宅基地

文章浏览阅读942次,点赞15次,收藏22次。C++11 新特性:智能指针 shared_ptr 与 weak_ptr

2021.08.04 -- 2021.08.06 第三章 栈和队列_csdn 嘻嘻子-程序员宅基地

文章浏览阅读157次。栈和队列一、栈1.栈的基本概念2.栈的顺序存储结构3.栈的链式存储结构4.栈的应用二、队列1.队列的基本概念2.队列的顺序存储结构3.队列的链式存储结构4.队列的应用三、特殊矩阵的压缩存储四、其他1.迷宫的"穷举求解":五、总结我有想过要不要把栈和队列和在一起讲,因为他们之间太多相似的地方了,但是我还是决定分开来写,这样复习梳理起来会更加的细致,如有不对的地方也请大家指出,多多包涵。一、栈1.栈的基本概念栈(stack)是只能在尾部添加数据或者删除数据的线性表。表尾,表顶:top,表头,栈底:b_csdn 嘻嘻子

CentOS7.6Arm Qt开发环境(GCC+Qt5+QtCreator+JDK8+MySQL8+CMake+ProtoBuf+Python+SVN)_centos 7.6 arm-程序员宅基地

文章浏览阅读2.5k次。基于运行与qemu上的CentOS 7.6 Arm虚拟机,在线安装配置Qt5.13开发环境(含Qt Creator),并进行所需的GCC环境配置、MySQL8环境配置,为开发环境准备CMake、Protobuf、Python、SVN客户端配置,并额外安装JDK8。_centos 7.6 arm

matlab字母随机排列,matlab – 从具有特定概率的字母表生成随机字符串(randsrc问题)...-程序员宅基地

文章浏览阅读1k次。所以我熟悉randsrc并且我可以使用给定概率的整数随机字母表创建.所以我想说我有这个字母表alphabet={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};prob=[0.08167 0.01492 0.02782 0.04254 0..._字母随机排序成个单词的的概率高数

推荐文章

热门文章

相关标签