gpt4 book ai didi

java - 为什么 java 命令在使用 java -cp 命令时将类路径识别为命令?

转载 作者:行者123 更新时间:2023-11-30 12:08:42 26 4
gpt4 key购买 nike

我正在根据一个文档研究Java类的包名编译:http://www.ntu.edu.sg/home/ehchua/programming/java/j9c_packageclasspath.html .根据本文内容,我创建了如下目录结构:

+MyTest  
-TestCircle.clsss
-TestCircle.java
+PackageTest
+classes
+com
+yyy
-Circle.class
+src
+com
+yyy
-Circle.java

上述目录结构中,“+”代表文件夹,“-”代表java文件。路径“\PackageTest\classes”目录下的内容是使用javac命令编译Circle.java文件时自动生成的。 Circle.java使用包名“com.yyy”,Circle代码如下:

package com.yyy;
public class Circle{
private double radius;
public Circle(double radius){this.radius = radius;}
public double getRadius(){return radius;}
public void setRadius(double radius){this.radius = radius;}
public String toString(){return "Circle[radius=" + radius + "]";}
}

和TestCircle代码:

import com.yyy.Circle;
public class TestCircle{
public static void main(String[] args){
Circle c1 = new Circle(1.23);
System.out.println(c1);
}
}

我已经使用以下步骤成功编译了 Circle.java:

>cd PackageTest\src\com\yyy
>javac -d classes src\com\yyy\Circle.java

编译后会自动生成包名对应的目录结构,位于“PackageTest\classes”文件夹下。然后我使用以下步骤成功编译了 TestCircle.java:

>cd MyTest
>javac -cp D:\PackageTest\classes TestCircle.java

但是当我执行下面的命令时,出现了错误:

>java -cp .;D:\PackageTest\classes TestCircle

“项目‘D:\PackageTest\classes’无法识别为 cmdlet、函数、脚本文件或可运行程序的名称”。似乎 java 将类路径识别为某些命令。

任何建议将不胜感激!

PS:以上所有步骤都是在我的windows 10笔记本电脑上进行的,我没有设置CLASSPATH环境变量。

最佳答案

在我看来,这不是来自 java 而是来自您的命令 shell 的错误。尝试在 -cp 参数的值周围加上引号。像这样:

>java -cp ".;D:\PackageTest\classes"TestCircle

它将指示 shell 不要尝试将其解释为命令,而只是将其按原样传递给 java 程序。

关于java - 为什么 java 命令在使用 java -cp 命令时将类路径识别为命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54212928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com