【问题标题】:Importing user classes in Java在 Java 中导入用户类
【发布时间】:2011-10-05 09:59:27
【问题描述】:

我有一个名为 CSV.java 的类,我想将它导入另一个类。 CSV.java 类作为我要在 (Main.java) 中使用的类位于另一个文件夹中。

在我的计算机上,我目前有一个名为“java”的文件夹 里面有2个文件夹:Classes和Assignment 在类中,我有一个名为“CSV”的文件夹,其中包含 CSV.java 和 CSV.class 在Assingment里面我有Main.java。

有没有办法导入 CSV.java 而不必复制它?

在 CSV.java 中我确实有 package CSV

【问题讨论】:

标签: java class import


【解决方案1】:

从你说的可以

import CSV.CSV;

但是,如果您有 IDE,它可以自动为您添加导入。

【讨论】:

  • 它说包 CSV.CSV 不存在
  • 您的 CSV.class 必须位于 CSV 目录下。即.class 的目录结构必须与.java 相同
  • 同样,使用 IDE 可以确保文件和路径都正确。
【解决方案2】:

这就是import 的用途。您的 Main 类可能看起来像

package Assignment;
import CSV.CSV;

public class Main {

    public static void main(String [ ] args) {
       CSV csv = new CSV();
       // Whatever you're doing with the csv object...
    }

    // Other methods

}

【讨论】:

    【解决方案3】:
    import CSV.CSV;
    

    注意CSV类必须在CSV.java中声明为public

    public class CSV { ... 
    

    然后你可以在你的类中使用 CSV 方法,例如:

    CSV.method_from_CSV.java(..);  // static method
    

    或者创建一个新的 CSV 对象并使用它的公共方法

    CSV csv = new CSV(); 
    csv.method_from_CSV.java(..);    // non-static method
    

    【讨论】:

      【解决方案4】:

      附加信息:包名称按约定为小写。

      【讨论】:

        【解决方案5】:

        编译(javac.exe)和执行(java.exe)需要使用classpath(cp)开关。

        编译 CSV.java

        c:\java\classes>javac CSV.java -d .
        

        Main.java

        package assignment;
        public class Main
        {
           public static void main(String []args)
            {
                CSV.CSV csv=new CSV.CSV();
            }
        }
        

        编译 Main.java

        c:\java\assignment>javac -cp .;c:\java\classes Main.java -d .
        

        要运行,

        c:\java\assignment>java -cp .;c:\java\classes assignment.Main 
        

        【讨论】:

        • 有没有办法在 Eclipse 中做到这一点?
        • 不!它来自命令提示符。您没有在问题中提到 IDE eclipse。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-18
        • 1970-01-01
        • 1970-01-01
        • 2015-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多