目录

0.最基本使用,参照下面链接(以前整理的资料)

1.直接调用java文件■cmd

2.调用jar包(Main Class打包到 jar包时)

3.补充说明

4.运行时,设置系统变量

5.查看类运行时,类的加载信息。

6.使用Maven生成Jar,运行Jar




命令行,powershell,使用java的java 命令,直接调用执行class文件

0.最基本使用,参照下面链接(以前整理的资料)

使用java的java 命令,直接调用执行class文件_sun0322-CSDN博客_java 执行class

1.直接调用java文件
■cmd

set path=%path%;C:\Program Files (x86)\Java\jre1.8.0_131\bin;
cd C:\NewIT\SikuliForRedmine\bin
javac -cp .;.\lib\myTool.jar;.\lib\myTool2.jar -d . Helloworld.java
java -cp .;.\lib\myTool.jar;.\lib\myTool2.jar com.sxz.Helloworld

引用jar包使,也可以写绝对路径

java -cp .;C:\NewIT\SikuliForRedmine\bin\sikulixapi.jar com.sxz.Test

■powershell

有些地方需要加上引号

$env:path=-join("C:\Program Files (x86)\Java\jre1.8.0_131\bin;", "$env:path")
cd C:\NewIT\SikuliForRedmine\bin
javac -cp ".;.\lib\myTool.jar;.\lib\myTool2.jar" -d . Helloworld.java
java -cp ".;.\lib\myTool.jar;.\lib\myTool2.jar" com.sxz.Helloworld

powershell 扩展1:查看环境变量 path的配置

$env:path

CSDN

powershell 扩展2:显示当前日期(以下两种方式都可以)

&'date'
date

链接  ⇒ 在Shell中,"$"和"&"的作用

■说明

・设置环境变量
・跳转目录
・编译java生成class文件 (编译时,使用 -d 参数,会生成package对应的文件夹)
・运行class字节码文件

(运行时,使用-DatuhPasswd=mypwd01 可以设定JVM的环境变量)
Java中的System.getProperty()设置参数的方法_sun0322-CSDN博客

2.调用jar包(Main Class打包到 jar包时)

java -DatuhPasswd=mypwd01 -jar myTestJava.jar param0 param1
java -DatuhPasswd=mypwd01 -Xms512m -Xmx1024m -XX:MetaspaceSize=512m -jar myTestJava.jar param0 param1

※:public static void main(String []args){...}

args[0]可以得到param0的值,依次类推 args[1] 对应的是 param1 的值
======
myTestJava.jar
  └META-INF
       └MANIFEST.MF
                  Main-Class:com.sxz.Helloworld
======

java -Dloader.path=/AA/BB/CC/LIB -jar aaa.jar// 运行的aaa.jar依存的其他的jar包

・启动jar,指定端口为8081

java -Dloader.path=/lib/projectA/other_lib -jar /lib/projectA/aaa.jar --spring.config.location=/lib/projectA/application.yml --server.port=8081

・启动aaa.jar,同时加载其他的jar包 (/lib/projectA/other_lib/ 下面的jar)

java -Dloader.path=/lib/projectA/other_lib -jar /lib/projectA/aaa.jar --spring.config.location=/lib/projectA/application.yml -Dserver.port=8081

・启动aaa.jar,生成gclog

java -verbose:gc -Xloggc:/AAA/BBB/aaa-gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -jar /XXX/XXX/xxxx.jar --server.port=8081

3.补充说明

java -jar myClass.jar
•执行命令时,会用到目录META-INF\MANIFEST.MF文件,
•在该文件中,有一个叫Main-Class的参数,指定了java -jar命令执行的类
(支持 通配符 java -jar myClass-*-RELEASE.jar )java -jar  *.jar param1 param2
•运行jar包,会自动到 jar 包中查询mainfest中定义的启动类并运行
•param1,param2 为main方法的参数可不填java -cp
•java -cp 和 -classpath 一样,是指定类运行所依赖其他类的路径,通常是类库,jar包之类,需要全路径到jar包,
•windows中 “;”
•linux中 “:”java -cp .;myClass.jar packname.mainclassname
•表达式支持通配符,例如:
•java -cp .;c:\classes01\myClass.jar;c:\classes02\*.jar  packname.mainclassname java -cp lib/*;etc/ com.Start param1 param2
•将lib下的所有jar文件以及etc下的所有配置文件添加到 classpath 中
•并在classpath 中寻找 com.Start类(main方法类)并运行
•param1,param2 为main方法的参数可不填
•※:jar 文件引入classpath,通配符不能写成 *.jar, 只能使用 * 或 123*
•※:配置文件引入classpath,只能写到目录 /, 不能添加 *

---

4.运行时,设置系统变量

1_RMI> java Client
Exception in thread "main" javax.naming.ConfigurationException: The object factory is untrusted. Set the system property 'com.sun.jndi.rmi.object.trustURLCodebase' to 'true'.at com.sun.jndi.rmi.registry.RegistryContext.decodeObject(RegistryContext.java:495)at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:138)at com.sun.jndi.toolkit.url.GenericURLContext.lookup(GenericURLContext.java:205)at javax.naming.InitialContext.lookup(InitialContext.java:417)at Client.main(Client.java:10)

Set the system property 'com.sun.jndi.rmi.object.trustURLCodebase' to 'true'.

cmd

java -Dcom.sun.jndi.rmi.object.trustURLCodebase=true -Dcom.sun.jndi.cosnaming.object.trustURLCodebase=true Client 

powershell 需要加上引号

java -D"com.sun.jndi.rmi.object.trustURLCodebase=true" -D"com.sun.jndi.cosnaming.object.trustURLCodebase=true" Client 

---

5.查看类运行时,类的加载信息。

java -verbose:class  com.sxz.study.classload.ClassLoadTest
或
java -XX:+TraceClassLoading  com.sxz.study.classload.ClassLoadTest
或
java -cp .; -XX:+TraceClassLoading  com.sxz.study.classload.ClassLoadTest

输出效果如下

[Opened C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar]
[Loaded java.lang.Object from C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar]
。。。
[Loaded java.security.UnresolvedPermission from C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar]
[Loaded java.security.BasicPermissionCollection from C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar]
[Loaded com.sxz.study.classload.ClassLoadTest from file:/C:/dev/MyJava001/target/classes/]
[Loaded sun.launcher.LauncherHelper$FXHelper from C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar]
[Loaded java.lang.Class$MethodArray from C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar]
[Loaded java.lang.Void from C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar]
[Loaded com.sxz.study.classload.Parent from file:/C:/dev/MyJava001/target/classes/]
[Loaded com.sxz.study.classload.Child from file:/C:/dev/MyJava001/target/classes/]
父类--静态变量
父类--静态初始化块
Main:父类--静态变量
[Loaded java.lang.Shutdown from C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar]
[Loaded java.lang.Shutdown$Lock from C:\Program Files\Java\jdk1.8.0_191\jre\lib\rt.jar]

---

・类的加载

・类的静态块的初始化

以上内容是两个概念。 // 类加载之后,静态块的容不一定被初始化!!!

子类使用父类的静态变量,只会初始化父类的【静态块】。

生成对象时,按照下面顺序初始化

6.使用Maven生成Jar,运行Jar

POM 打包 Jar,指定Main方法的类,指定使用的JDK_sun0322的博客-CSDN博客

---

命令行,使用java的java 命令,直接调用执行class文件相关推荐

  1. c 运行 java linux命令行参数,Linux下用命令行编译运行Java总结

    最近使用腾讯云的Cloud Studio写Java,只能使用命令行进行编译运行,趁此机会,学习一下Linux的一些常用命令.平时windows下IDE用习惯了,现在用命令行进行编译运行,发现其实问题还 ...

  2. java 输入 方程,用java 编写一程序,求解一元二次方程:aX2+bX+c=0.参数a、b及c从命令行做参数输入 java...

    题目: 用java 编写一程序,求解一元二次方程:aX2+bX+c=0.参数a.b及c从命令行做参数输入 java 答案参考: 以下程序在jdk5.0测试通过 import java.util.Sca ...

  3. 探索Windows命令行系列(7):通过命令编译C#类和Java类

    1.编译 C# 类 1.1.C# 编译工具 1.2.编译一个 C# 类 1.3.编译多个 C# 类 2.编译 Java 类 2.1.Java 编译工具 2.2.编译 Java 类 3.组合命令符 4. ...

  4. java命令行编译运行遇到java:5: 错误: 编码GBK的不可映射字符 (涓変釜鏋勯?犲嚱鏁?)解决方法

    java命令行编译运行遇到java:5: 错误: 编码GBK的不可映射字符 (涓変釜鏋勯?犲嚱鏁?)解决方法 错误原因:使用简单javac 命令编译java文件,如果代码中存在中文,就算是注释有中文的 ...

  5. 使用java的java 命令,直接调用执行class文件

    使用java的java 命令,直接调用执行class文件_sun0322-CSDN博客_java 执行class 更多操作: 命令行,使用java的java 命令,直接调用执行class文件_sun0 ...

  6. linux设置历史命令行数,Linux设置history命令显示行数以及时间

    Linux和unix上都提供了history命令,可以查询以前执行的命令历史记录 但是,这个记录并不包含时间项目 因此只能看到命令,但是不知道什么时间执行的 如何让history记录时间呢? 解决方案 ...

  7. linux快捷命令补齐,Linux Shell简介——自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式.doc...

    Linux Shell简介--自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式 Unix (及后继者 Linux)在命令行下面诞生,因此,Unix 中的命令行有许多非常实用的功能. ...

  8. cmd 命令行窗口切换目录 cd 命令操作方法

    cmd命令行窗口切换目录 cd 命令操作方法 1. 同一磁盘下目录切换 D:切换盘符(注意冒号是英文格式的) cd :显示当前目录 cd.. :返回上一层目录 cd xxx:切换文件夹 2. 不同磁盘 ...

  9. linux命令行下读取u盘内容_Linux拷贝U盘文件(命令行)

    Linux系统有的有界面,有的没有只要命令窗口,因此导入外部文件就变得困难,没有可视化的方便. 这里通过挂载u盘进行文件拷贝. 首先挂载u盘:这里以centos为例 1.进入命令行模式下,输入命令 s ...

最新文章

  1. “package ‘ElemStatLearn‘ is not available for this version of R
  2. 点击一个按钮,弹出6个按钮
  3. Windows支持直接访问Linux子系统文件:你的下一台Linux何必是Linux
  4. PEP Python Enhancement Proposals(python增强提案\python改进建议书)(重点PEP8)
  5. C++ 并发编程(四):基于 Asio 的线程池
  6. ASCII与汉字编码方法
  7. 公益性岗位计算机考试内容,公益性岗位公共基础知识:计算机概述-计算机硬件系统(1)...
  8. Android-带你从源码角度理解SharedPreferences存储原理
  9. Android wakelock 自上而下浅析
  10. 找call的万能方法,一招通杀所有网络游戏【个人实践出来的】
  11. 大数据量的存储分表常见算法
  12. Java并发:线程间数据传递和交换
  13. 易飞ERP系统平台故障
  14. 计算机设置u盘启动,③、设置U盘启动教程
  15. 抖音怎么上热门?这样发视频点赞过万!
  16. 笔记本电脑亮度突然不能调的处理方法
  17. 实验二 数字类型及其操作(新)
  18. 易班php,易班轻应用开发:PHP版
  19. 手机配件市场上的“隐形巨头”:80后长沙夫妻创办,IPO首日市值逼近600亿
  20. 计算机网络系统中常用的四对双绞线电缆,计算机网络中常用的三种有线传输媒体是什么?...

热门文章

  1. Team Foundation Server XXX 不存在,或者此时不可访问:解决方案
  2. android PowerManager 权限问题
  3. C#动态调用WCF接口,两种方式任你选。
  4. NFS环境搭建测试 保证挂载重启后不丢失
  5. JSP隐含变量和Spring中Model在EL表达式中的读取顺序
  6. oracle如何链接到另外一个数据库DB_LINK
  7. PHP操作MongoDB
  8. django模板层 (标签,过滤器,自定义inclusion_tag,模板的继承与导入)
  9. MongoDB管理与监控
  10. 一、什么是类,一些关键字