【问题标题】:Import own class file in .java在.java中导入自己的类文件
【发布时间】:2014-04-03 14:08:24
【问题描述】:

嘿一个问题,我有这个编译的 .class 文件,它包含在 .java 文件中:

package my.mypackage;
public class MyClass {
//SPACE START
    public static void space(int spacecount) {
    int spacepos = 1;
        while (spacepos <= spacecount) {
            System.out.println("");
            spacepos++;
        }
    }
//SPACE END
//HASH START
    public static int encrypt(String pass) {
        int total = 0;
        int  countone = 0;
        int  counttwo = 0;
        String charlist = "abcdefghiklmnopqrstuvwxyz";
        for (int l = 0; l < pass.length(); l++) {
            countone = pass.charAt(l);
            counttwo = (charlist.indexOf(countone));
            counttwo++;
            total *= 17;
            total += counttwo; 
        }
        return total;
    }
//HASH END
}

我想将它导入到另一个名为 a.java 的文件中,它包含以下内容:

import my.mypackage.MyClass;
import java.util.Scanner;
public class a {
    public static void main(String[] args) {
        MyClass.space(4);
        Scanner in = new Scanner();
        System.out.println("Input pass: ");
        String a = in.nextLine();
        int b = MyClass.encrypt(a);
        MyClass.space(4);
        System.out.println(b);

    }
}

两者都在一个文件夹中。 但是当我试图编译它时,它告诉我:

a.java:1: error: package my.mypackage does not exist                                                                                                                                  
import my.mypackage.MyClass;                                                                                                                                                          
                   ^                         
a.java:5: error: cannot access MyClass                                                                                                                                                
                MyClass.space(4);                                                                                                                                                     
                ^                                                                                                                                                                     
  bad class file: ./MyClass.class                                                                                                                                                     
    class file contains wrong class: my.mypackage.MyClass                                                                                                                             
    Please remove or make sure it appears in the correct subdirectory of the classpath.                                                                                               
2 errors           

谁能告诉我如何一步一步把它组合在一起?

【问题讨论】:

    标签: java class import


    【解决方案1】:

    这是罪魁祸首:

    两者都在一个文件夹中。

    Java 编译器依赖于命名源文件和文件夹的约定,通过仅检查文件名来查找源代码,即不检查其内容;包名是命名约定的一部分。这就是编译器希望在不同文件夹中找到MyClass.java 的原因。

    由于class MyClassmy.mypackage包中,而class a在默认包中,它们的.java文件不能放在同一个文件夹中。相反,MyClass.java 文件需要放在与a.java 文件位置相关的my/mypackage/(在Windows 上为my\mypackage\)文件夹中。

    【讨论】:

    • 这意味着如果我的 a.java 文件在文件夹 C:\JAVA` the MyClass has to be in C:\JAVA\my\myclass` 中?
    • 我把两个都装在包里my怎么样?
    • @Ch3t0r “这意味着如果我的 a.java 文件在文件夹 C:\JAVA 中,那么 MyClass.java 必须在 C:\JAVA\my\myclass 中?”绝对可以(除了您输入了myclass 而不是mypackage)。 “当我将两者都装在包裹my中时怎么样?”同一个包中的所有.java 文件都需要放在同一个文件夹中——在这种情况下,就是C:\JAVA\my
    • 好的,现在我做错了什么。 CLASSPATH 变量的值 "." 不是 . 问题已修复。
    猜你喜欢
    • 1970-01-01
    • 2016-05-04
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    • 2023-04-07
    • 1970-01-01
    • 2017-04-29
    相关资源
    最近更新 更多