在.java中导入自己的类文件
嘿,有一个问题,我有一个编译过的.class文件,它包含在.java文件中:在.java中导入自己的类文件,java,class,import,Java,Class,Import,嘿,有一个问题,我有一个编译过的.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("");
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: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编译器依赖于一种命名源文件和文件夹的约定,这种命名方式允许它通过只检查文件名(即不检查其内容)来查找源代码;包名称是命名约定的一部分。这就是为什么编译器希望在不同的文件夹中找到MyClass.java
由于
class MyClass
在my.mypackage
包中,而class a
在默认包中,因此它们的.java
文件不能放在同一文件夹中。相反,MyClass.java
文件需要放在my/mypackage/
中(在Windows上,my\mypackage\
)与a.java
文件位置相关的文件夹。这意味着如果我的a.java文件位于C:\java`文件夹中,MyClass必须位于C:\java\my\MyClass`?当我将这两个文件都打包在包my
中时,情况如何?@Ch3t0r“这意味着,如果我的a.java文件位于文件夹C:\java
中,那么MyClass.java
必须位于C:\java\my\MyClass
?”绝对是(除了您键入了MyClass
而不是mypackage
)中。“当我将这两个文件都打包在包my
中时,情况如何?”?“同一个包中的所有.java
文件都需要放在同一个文件夹中-在这种情况下,这将是C:\java\my
。好了,现在我知道我做错了什么。CLASSPATH
变量的值为“
未
问题已修复。
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