我在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
时,控制台会出错。
答案 0 :(得分:4)
听起来你正在编辑包含.java文件的目录中的,并且只告诉编译器其中一个源文件。这就是问题 - 尝试查找源文件或类文件时,编译器正在使用软件包名称,并希望以传统方式布置软件包。从源代码树的根目录编译 - 我当然希望你正在使用 - 就像这样:
javac xml_creator/*.java
您可能还想指定一个输出目录 - 它也是包的目录层次结构的根目录:
javac -d bin xml_creator/*.java
如果您正在从命令行构建 (而不仅仅是一次性代码),您应该考虑使用Ant等构建系统。