「java-cp」javacp命令详解

博主:adminadmin 2023-01-19 16:48:06 264

本篇文章给大家谈谈java-cp,以及javacp命令详解对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

错误: 找不到或无法加载主类 ArrayListMagnet?

解决 :提示错误“找不到或者无法加载主类” 的一个方法

1、可能是你的项目的Java Build Path中的Libraries中有个jar包的Source attachment指为了一个不可用的jar包。

2、jdk1.8不需要配置环境变量classpath

3、以下原理理解了你就可以自行解决上述错误。

(1)cmd运行java文件,请把文件里的第一行"package A;"注释掉;

假设:Hello.java位于C:/work/ppp/A下

在工作目录"C:/work/ppp/A" 下输入:

javac Hello.java

java Hello

则 编译运行成功。

(2)若在java文件中加上了package A;则在工作目录"C:/work/ppp/A"下输入:

javac Hello.java

java -cp .;(此处为文件路径) A.Hello

解释:-cp 为一个选项,也可写为-classpath

.表示当前目录"C:/work/ppp/A"

;表示分隔符

(此处为文件路径) 在本例中为"C:/work/ppp"

A.Hello:因为java文件里第一行有"package A",所以此处必须为A.Hello

显然,在当前目录"C:/work/ppp/A"中找不到A.Hello,在"C:/work/ppp"中找到了A.Hello,所以上述两行将编译执行成功。

java-cp是什么意思?为什么要跟目录?

cp 是 classpath的缩写,后面放的是依赖的jar包,jar目录,class的根路径之类。

请问 java -cp ".\\bin;.\\libs\\*;" org.testng.TestNG .\\testng.xml 这是什么意思?

------先解释整体命令的意思,拆成三部分解释:

首先 cp 是设置classpath(如果不知道这是啥 把他暂时理解为java搜索类文件的路径就行)的缩写方式,是java的参数;

后面的org.testng.TestNG是包含main方法类的全名,同样是java参数

最后的.\\testng.xml是程序参数,或者说是main方法里的参数

--------之后解释\与\\的问题

\是windows系统代表文件路径级别的方式,点(.)则代表着当前目录,.\bin表示的是当前目录下的bin文件夹;libs同样如此;

让后就是这个双杠了,在编程的字符串中,\代表着转义字符,例如\n,\t分别对应于换行和TAB,而在字符串里表示windows路径时,我们本意需要的就是\本身,故而使用\\,做为\的转义字符;

上述情况是在编码中的字符串常量里表达的,这里我大胆的猜一下,可能写这个命令的人理解错了一些东西,作为参数,\是不需要转义的;而操作系统有这样一个默认,即输入多个杠表示的是同一级路径,比如C:\与C:\\\\\\\\都可以代表C盘根目录,所以即使写了多个杠也一样能正常使用。

------------最后说引号

这个是命令的问题,一般来讲,执行命令时会把空格后的东西当成参数,但有时,参数本身就带有空格,比如“C:\Program Files”这个路径,用引号引起来,是为了告诉命令的执行者C:\Program Files是一个不可分割的整体,不要把Files单独的当成参数了。

一般而言,出现此类情况都是文件夹名称的问题,所以在打命令时,习惯了将表达路径的参数用引号引起来,使程序不会因为路径中带有空格而出问题。

------------其它的一些建议

1.classpath是个比较重要的概念,需要好好了解一下。

2.编码里最好少用\\,这是windows的表达方式,当你需要java的跨平台特性时,可能会遇到麻烦(比如linux就不认);你可以使用/来表示路径结构,例如/C:/windows/

关于java-cp和javacp命令详解的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。