如何将Java源文件编译到指定目录并实现跨目录访问?
Java编译输出目录错误的解决方法
问题根源
你用的javac -d C:\jaBHa\sources命令,是指定把编译产物输出到C:\jaBHa\sources目录下。如果你的Java代码里写了package classes;这类包声明,javac会自动在-d指定的目录下创建对应包名的子文件夹,最后就出现了C:\jaBHa\sources\classes这个意外路径。
正确操作步骤
- 检查所有.java源文件,删掉多余的
package classes;声明(如果本来就不需要包结构的话) - 执行正确的编译命令:
这个命令的作用:javac -d C:\jaBHa\classes C:\jaBHa\sources\*.java-d C:\jaBHa\classes:直接指定编译后的.class文件输出到这个目标目录C:\jaBHa\sources\*.java:明确告诉编译器要编译的所有源文件位置
补充提示
如果你的代码确实需要使用包结构(比如package com.myapp;),编译后会在C:\jaBHa\classes下自动生成com\myapp子目录来存放类文件,这是Java包机制的正常逻辑,只要包名和你规划的目录结构对应上就没问题。
内容的提问来源于stack exchange,提问作者Debendra Nath Mukherjee
相关产品推荐
相关产品推荐

