我用java写了一段代码。我在其中创建了一个名为 xml-creator
的包。
xml_creator
包有 3 个类,分别是 XML_Control
、XML_Creator
和 XML_implement
。
当我在 netbeans (NetBeans 7.0) 上运行我的项目时,它工作正常。但是如果我尝试在控制台上编译代码,我会遇到各种错误,例如
当我编译 XML_Creator.java
时,出现以下错误。
XML_Creator.java:371: cannot find symbol
symbol : variable XML_implement
location: class xml_creator.XML_Creator
typeAttr.setValue(XML_implement.table_col[i][2]);
^
XML_Creator.java:375: cannot find symbol
symbol : variable XML_implement
location: class xml_creator.XML_Creator
for(int j=0;j<XML_implement.kTab;j++)
^
XML_Creator
和 XML_implemenr
都在同一个包中,但没有相互扩展。
很抱歉,我无法在此站点上显示代码,因为它太大并且违反公司政策。
我不明白为什么它向我显示错误?
示例代码
XML_Control.java
package xml_creator;
public class XML_Control
{
public static void main(String as[])
{
XML_Creator xml = new XML_Creator();
}
}
XML_Creator.java
package xml-creator;
public class XML_Creator
{
XML_implement ixml = new XML_implement();
public XML_Creator()
{
System.out.println(""+ixml.a);
}
}
XML_implement.java
package xml_creator;
public class XML_implement
{
public int a;
public XML_implement()
{
a = 10;
}
}
所以当我编译 XML_Creator.java
时,控制台报错。
最佳答案
听起来您正在包含.java 文件的目录 中进行编译,并且只告诉编译器有关其中一个源文件的信息。这就是问题所在——为了尝试查找源文件或类文件,编译器使用包名,并期望包以传统方式布局。从源代码树的根编译 - 我当然 希望 你正在使用 - 像这样:
javac xml_creator/*.java
您可能还想指定一个输出目录 - 这将再次成为包目录层次结构的根:
javac -d bin xml_creator/*.java
如果您定期从命令行构建(而不仅仅是一次性代码),您应该考虑使用构建系统,例如Ant .
关于java - netbeans 和控制台的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10240964/