在AWS EC2实例运行Java应用时遇javac找不到文件错误求助
解决Java编译提示"file not found: HelloWorld.java"的问题
以下是几个实用的排查和解决步骤:
1. 确认文件是否在当前工作目录
先执行两个命令确认文件位置:
# 查看当前所在目录 pwd # 列出当前目录下的所有文件 ls -l
如果HelloWorld.java不在当前目录,要么切换到文件所在路径(执行cd 目标路径),要么直接用完整文件路径编译:
javac /home/ec2-user/xxx/HelloWorld.java
2. 核对文件名大小写
Linux系统严格区分文件名大小写,检查你输入的HelloWorld.java和实际文件名完全匹配——别把HelloWorld写成helloworld,也别把.java写成.JAVA。
3. 处理包结构的要求
你的代码里声明了package demo;,按照Java规范,这个源文件必须放在名为demo的子目录下,目录结构需符合:
你的工作目录/ └── demo/ └── HelloWorld.java
如果是这个结构,你要回到demo的上级目录,再执行编译:
# 直接编译源文件 javac demo/HelloWorld.java # 或者指定类文件输出目录 javac -d . demo/HelloWorld.java
要是不需要包结构,直接删掉代码里的package demo;即可。
4. 检查文件访问权限
你用root用户执行编译,需确认root能读取该文件。执行以下命令查看文件权限:
ls -l HelloWorld.java
如果权限显示root没有读权限,执行命令调整:
chmod +r HelloWorld.java
内容的提问来源于stack exchange,提问作者Castaspella
相关产品推荐
相关产品推荐

