Java无法识别同一项目文件中的公共类问题求助
解决Java运行时
error: cannot find symbol的问题 问题根源
你执行命令时,-cp参数仅指定了第三方库的jar路径,未包含当前工作目录,导致JVM无法找到同文件夹下你自己编写的类,因此抛出找不到符号的错误。
具体解决方法
方法一:修改classpath,添加当前目录
Windows系统中,classpath的多个路径用**分号;**分隔,将代表当前目录的.加入-cp参数,命令修改为:
cmd /c --% java -cp "<你的库的.jar文件路径>;." FileName.java
举个实际例子,若你的库路径是D:\dev\libs\commons-lang3.jar,命令则为:
cmd /c --% java -cp "D:\dev\libs\commons-lang3.jar;." FileName.java
这样JVM就能同时识别第三方库和你自己编写的同目录类。
方法二:先编译所有依赖类,再运行(更稳妥)
如果项目包含多个自定义类,建议先统一编译再运行:
- 编译所有.java文件(需带上第三方库依赖):
cmd /c --% javac -cp "<你的库的.jar文件路径>;" *.java
这条命令会把当前文件夹下所有.java文件编译成.class文件。
2. 运行主类(同样要包含库和当前目录):
cmd /c --% java -cp "<你的库的.jar文件路径>;." FileName
注意:运行时不需要加.java后缀,直接写主类的类名即可。
额外注意事项
- 如果你的类带有包声明(比如
package com.myapp;),文件夹结构必须和包名完全对应(需放在com\myapp文件夹下),同时classpath要指向包的根目录(即包含com文件夹的上级目录)。 - 执行命令前,先在IntelliJ终端用
dir命令确认当前工作目录就是你的.java文件所在文件夹,避免路径错误。
内容的提问来源于stack exchange,提问作者LaCosaCoding
相关产品推荐
相关产品推荐

