如何创建 Java 个包以及如何将它们导入另一个包?

How to Create Java Packages And How to Import Them In Another?

我是 java 的新手,我试图从另一个导入包,但另一个无法编译,因为它说找不到第一个包,这就是我所做的:

首包代码:

package sagar.sql;

import java.sql.Connection;
import java.sql.SQLException;

import oracle.apps.bne.exception.BneException;
import oracle.apps.bne.framework.BneWebAppsContext;
import oracle.apps.bne.utilities.sql.BneBaseSQL;

public class SagarSupplierSiteNameSQL extends BneBaseSQL {
public SagarSupplierSiteNameSQL(BneWebAppsContext paramBneWebAppsContext, 
                                String paramString) throws SQLException, 
                                                           BneException {
    Connection connection = paramBneWebAppsContext.getJDBCConnection();
    StringBuffer stringBuffer = new StringBuffer();

    stringBuffer.append("SELECT PARTY_NAME,ACCOUNT_NUMBER,LOCATION  WHERE org_id = 281 AND ACCOUNT_NUMBER = :1");


    if ((paramString != null) && (!paramString.trim().equals(""))) {
        stringBuffer.append("AND " + paramString);
    }

    //stringBuffer.append(" ORDER BY VENDOR_SITE_CODE, ADDRESS ");

    setQuery(connection, stringBuffer.toString());
  }
}

第二包代码:

package sagar.validator;


 import java.util.Hashtable;

 import oracle.apps.bne.exception.BneException;
 import oracle.apps.bne.exception.BneFatalException;
 import oracle.apps.bne.exception.BneMissingParameterException;
 import oracle.apps.bne.framework.BneWebAppsContext;
 import oracle.apps.bne.integrator.validators.BneUploadValidator;
 import oracle.apps.bne.utilities.sql.BneCompositeSQLCriteria;
 import oracle.apps.bne.utilities.sql.BneResultSet;
 import oracle.apps.bne.utilities.sql.BneSQLStatement;

 import sagar.sql.SagarSupplierSiteNameSQL;

public class SagarSupplierSiteNameValidator extends BneUploadValidator {

public String[] getDomainParameters() {
    return new String[] { "P_CUST_NUM" };
}

public BneResultSet getDomainValues(BneWebAppsContext paramBneWebAppsContext, 
                                    Hashtable paramHashtable, 
                                    BneCompositeSQLCriteria paramBneCompositeSQLCriteria) throws BneException {

    SagarSupplierSiteNameSQL sagarSupplierSiteNameSQL = null;
    BneResultSet bneResultSet = null;
    BneSQLStatement bneSQLStatement1 = new BneSQLStatement();

    if (paramBneCompositeSQLCriteria != null) {
        bneSQLStatement1 = 
                paramBneCompositeSQLCriteria.evaluate(bneSQLStatement1);
    }

    String str1 = (String)paramHashtable.get("P_CUST_NUM");

    if (str1 == null) {
        throw new BneMissingParameterException("Customer Number Field Error");
    }


    try {
        sagarSupplierSiteNameSQL = 
                new SagarSupplierSiteNameSQL(paramBneWebAppsContext, 
                                             bneSQLStatement1.getStatement());
        BneSQLStatement bneSQLStatement2 = 
            new BneSQLStatement(sagarSupplierSiteNameSQL.getQuery(), 
                                new Object[] { str1 });

        bneSQLStatement2.append("", bneSQLStatement1.getBindValues());
        bneResultSet = 
                sagarSupplierSiteNameSQL.getBneResultSet(bneSQLStatement2.getBindValuesAsArray());
    } catch (Exception exception) {
        throw new BneFatalException(exception.toString());
    }


    return bneResultSet;
}


}

航站楼:

-bash-3.00$ javac /apps/DEV/apps/apps_st/comn/java/classes   
/SagarSupplierSiteNameSQL.java -d "$JAVA_TOP/sager/sql"
-bash-3.00$     
-bash-3.00$ 
-bash-3.00$ 
-bash-3.00$ 
-bash-3.00$ javac /apps/DEV/apps/apps_st/comn/java/classes   
/SagarSupplierSiteNameValidator.java -d "$JAVA_TOP/sager/validator"
/apps/DEV/apps/apps_st/comn/java/classes   
/SagarSupplierSiteNameValidator.java:15: package sagar.sql does not exist
import sagar.sql.SagarSupplierSiteNameSQL;
            ^
/apps/DEV/apps/apps_st/comn/java/classes   
/SagarSupplierSiteNameValidator.java:27: cannot find symbol
symbol  : class SagarSupplierSiteNameSQL
location: class sagar.validator.SagarSupplierSiteNameValidator
    SagarSupplierSiteNameSQL sagarSupplierSiteNameSQL = null;
    ^
/apps/DEV/apps/apps_st/comn/java/classes   
/SagarSupplierSiteNameValidator.java:45: cannot find symbol
symbol  : class SagarSupplierSiteNameSQL
location: class sagar.validator.SagarSupplierSiteNameValidator
                new SagarSupplierSiteNameSQL(paramBneWebAppsContext, 
                    ^
`3 errors

如果您需要有关我所面临问题的更多信息,请询问我并帮助我。

由于您使用的是交叉导入,因此文件不会单独编译。您必须一次编译所有文件。

此外,您的 类 不在 java 文件顶部所说的包内。从两个文件和 运行 中删除 package sagar.validator;package sagar.sql; 以下命令:

javac /apps/DEV/apps/apps_st/comn/java/*.java

如果你想使用包,移动 SagarSupplierSiteNameSQL.java 文件夹内 /apps/DEV/apps/apps_st/comn/java/sagar/sql

SagarSupplierSiteNameValidator.java 里面 /apps/DEV/apps/apps_st/comn/java/sagar/validator

进入 /apps/DEV/apps/apps_st/comn/java,以下 2 个命令中的任何 1 个都应该起作用。

javac  **/*.java 

javac  **/**/*.java

当我使用这两个命令时,它工作得很好:

  javac /apps/DEV/apps/apps_st/comn/java/classes/SagarSupplierSiteNa‌​meSQL.java -d "$JAVA_TOP" 

 javac /apps/DEV/apps/apps_st/comn/java/classe/SagarSupplierSiteNa‌meValidator.java -d "$JAVA_TOP" 

它自动创建了包的目录,感谢@Pankaj Singhal,因为你的重播指导了我