1

我用java写了一段代码。我在其中创建了一个名为xml-creator.
xml_creator有 3 个类说XML_Control,XML_CreatorXML_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,控制台会出错。

4

1 回答 1

4

听起来您正在包含 .java 文件的目录中进行编译,并且只告诉编译器其中一个源文件。这就是问题所在——为了尝试查找源文件或类文件,编译器使用包名,并期望包以传统方式布局。从源代码树的根目录编译——我当然希望你正在使用它——像这样:

javac xml_creator/*.java

您可能还想指定一个输出目录 - 这又将是包目录层次结构的根:

javac -d bin xml_creator/*.java

如果您定期从命令行构建(而不仅仅是一次性代码),您应该考虑使用诸如Ant的构建系统。

于 2012-04-20T06:01:38.657 回答