【持续更新】java 指令释疑

*.class文件的执行


SerializableTest

如上一个测试项目,最后生成的class文件在out\production\SerializableTest(注意,此处为Windows测试环境,Mac OS、Linux等其他环境注意使用分隔符的方向修改)

小部分IDE环境可能不支持终端输入的处理,或者当你需要更直接的使用命令行作为调试入口时,可以使用java相关指令:

  • java 包名.类名
  • java -cp 路径 包名.类名

以上述工程为例:

第一种方式需要切换(cd) 到对应 out\production\SerializableTest 下,然后再使用java Main 运行Main.class

第二种方式则使用比较自由,假使当前所在目录为out的上一层(即工程目录),直接使用 java -cp out\production\SerializableTest Main 即可

上述项目中,直接在src下创建了Main.class,所以在使用时,它的默认包名为空,而我们一般的项目,都会有许多层级,譬如com.xx.Main,那么,它的包名就是com.xx。其实java的包名,就是根据内部路径进行的转换,将斜杠换成了点(dot),很多人在使用命令行时,总是遇到不可解的问题,本质上其实都是目录问题,需要注意

此处需要额外说明的是:

命令行中执行程序,要注意当前所在目录,尤其是一些使用到相对目录的指令或参数,可能一不小心会带来灾难性后果。譬如笔者就曾经在Mac上使用Gradle的一条文件拷贝指令,导致一些隐藏配置文件(.*)被覆盖,而这种直接的覆盖,是没有办法撤销的

指令虽小,可能带来的问题之大,远超我们可以掌控,慎用

感谢那些创造了强大IDE集成功能的先驱,尤其是那些不会出导致致命问题的(版本更迭总会带来各种奇怪的问题,请原谅他们吧)

更多的java相关指令请参考 java指令文档 ,此处仅做最简单方式的使用说明。通常一个工具指令,总会提供丰富多元的参数,但在实际使用时,被使用到的通常只有少数几个,我们不需要苛责自己一定要全部记住,只要知道它提供了额外的手段,当我们觉得有必要提高效率时,再去使用它额外提供的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖大老弟

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值