Java 在命令行中,路径后面的冒号(:)是什么意思
我有一个java程序,它使用Jsoup库解析一些HTML 要编译程序,我运行以下命令:Java 在命令行中,路径后面的冒号(:)是什么意思,java,bash,Java,Bash,我有一个java程序,它使用Jsoup库解析一些HTML 要编译程序,我运行以下命令: javac-cp jsoup-1.10.3.jar HtmlVerify.java,其中jsoup jar位于同一目录中 要运行程序,当我运行时: java-cp jsoup-1.10.3.jar HtmlVerify,我得到一个错误:错误:无法找到或加载主类HtmlVerify 但是,当我将:附加到jar时,如下所示: java-cp jsoup-1.10.3.jar:HtmlVerify,它可以工作 这是
javac-cp jsoup-1.10.3.jar HtmlVerify.java
,其中jsoup jar位于同一目录中
要运行程序,当我运行时:
java-cp jsoup-1.10.3.jar HtmlVerify
,我得到一个错误:错误:无法找到或加载主类HtmlVerify
但是,当我将:
附加到jar时,如下所示:
java-cp jsoup-1.10.3.jar:HtmlVerify
,它可以工作
这是怎么回事?为什么:
解决了这个问题
编辑:修复了在UNIX系统上运行的
java
命令。从这里开始:
类路径在
:
上拆分,每个条目都被视为搜索所需类的路径空条目将引用当前工作目录,相当于
换句话说,前面的命令意味着“在jsoup-1.10.3.jar
中查找类”
后一种方法的意思是“在jsoup-1.10.3.jar中查找类,或者在当前目录中查找类”
HtmlVerify
位于当前目录中,因此只能使用后一个命令找到它
JRe/JDK文档没有提到这个特性,所以请考虑使用更明确和更不易混淆的<代码> -CP JSOP1.1.3.jar:< /Cord>。毫无疑问,它是从Unix
PATH
中的相同行为继承而来的,POSIX也是如此。java命令需要一个可执行类的完全限定名作为参数。不是.java文件的路径。您的工作命令可能无法工作<代码>:
是Unix上的标准路径分隔符。它用于在类路径中分隔多个jar路径(例如,在PATH环境变量中分隔目录路径)更正:我的意思是当我运行java-cp jsoup-1.10.3.jar htmlevery
时,我得到了错误:error:无法找到或加载主类htmlevery
,当我运行java-cp jsoup-1.10.3.jar:htmlevery
For multiple JAR files, separate the jar-files with semicolons, as follows:
javac -classpath jar-file1;jar-file2;jar-file3 java-file
Some rules to note:
On UNIX systems use a colon instead of a semicolon.`