使用java命令运行class

使用java命令运行class

2023年7月13日发(作者:)

使⽤java命令运⾏class有时候我们需要直接⽤jdk提供的java命令来执⾏class⽂件让软件运⾏起来,特别是很多初学者,但经常会发现如下提⽰:⽤eclipse或⽤ant则没有问题。其实原因很简单,我们忽略了2个细节。指令默认在寻找class⽂件的地址是通过CLASSPATH环境变量中指定的⽬录中寻找的。2.我们忽略了package的影响。第⼀个问题好解决:我们直接在CLASSPATH环境变量中加⼊“.;”即可。“.”的意思是搜索当前⽬录第⼆个问题看下⾯分析:看下⾯两个类

类A 类B类A和类B的唯⼀差别就是没有定义包名。我们的⼯程路径是D:HelloWorld,在HelloWorld⽂件夹中建⽴⼀个src⽂件夹,类B的源代码⽂件就放在src中。⽤javac编译完以后会在src⽂件夹中⽣成,如下执⾏如下: 现在我们再把源代码换成类A为什么加⼊了package后就不对了呢?类A中package的路径是。按照java规定,我们应该按照package定义的路径来存放源⽂件,类A应该放⼊:srcorgwillappmain下,如下:然后我们编译执⾏:依然有问题,为什么,其实⼤家再回去看看java的书籍就会发现,⼀个类的全名应该是包名+类名。类A的全名:nager好的,再试试:还是不对。为什么?仔细看上⾯的图,我们在main⽬录下让java命令去执⾏nager,其实它会以为类的路径是:D:HelloWorldsrcorgwillappmainorgwillappmainNewsManager,⼤家看到了吧,路径重复了。所以,我们应该这样执⾏:成功!总结:⼀、java执⾏class⽂件是根据CLASSPATH指定的地⽅来找,不是我们理解当前⽬录。如果希望它查询当前⽬录,需要在CLASSPATH中加⼊“.;”,代表当前⽬录。⼆、java执⾏class⽂件对package的路径是强依赖的。它在执⾏的时候会严格以当前⽤户路径为基础,按照package指定的包路径转化为⽂件路径去搜索class⽂件。各位同学以后注意就OK啦。⾄于⽹上说的要在CLASSPATH要加各种包等等都是泛泛⽽谈,真正静下⼼分析这个问题的资料不多。很多都没有说到点⼦上,会误导⼈的。

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689201585a220215.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信