我将Ref.java编译成ref.class并将其放在下面指定的目录中。
我正在寻找如何使用CLASSPATH的魔鬼。如果有人能够指出我的(可能是愚蠢的)错误,我会非常高兴。
我有一个类“Ref.java”如下:
package utility.myapp;
public class Ref {
static public void print(String s)
{
// do something here
}
}
我的CLASSPATH包括:
C:\Eclipse\classes
我将该类存储为文件:
C:\Eclipse\classes\utility\myapp\Ref.class
从我的主要项目导入为:
import utility.myapp.*
在下面的文件“Main.java”中:
package com.reftest;
import android.app.Activity;
import android.os.Bundle;
import utility.myapp.*;
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Eclipse说:
The import utility cannot be resolved
我已经尝试了我想到的这个主题的每个变体,但仍然没有快乐 任何帮助赞赏。
BTW - 我没有省略或简化任何事情:我试图建立这个实际且重要的琐碎项目,只是为了使结构正确。
答案 0 :(得分:2)
这对我来说听起来非常不对。
C:\Eclipse\classes
完全错了。您应该创建一个新项目,并且.class文件最终应该与项目根目录相关。
您应该能够右键单击Eclipse项目并设置JAR文件所在的目录等.Eclipse应该告诉您一个默认的位置,它会在您编译.java时放置.class文件;确保它与您的项目根目录相关。
你最好没有环境变量CLASSPATH。这是错误的做法。
答案 1 :(得分:1)
您需要确保已编译的类文件位于CLASSPATH
。
尝试将Ref.class
放入
C:\Eclipse\classes\utility\myapp\
答案 2 :(得分:0)
感谢所有提供输入的人。作为对社区的服务,我提供了我在下面学到的所有内容。
有两个个案例,其中使用了CLASSPATH 1.在构建/调试周期(Eclipse内部)中 2.独立运行应用程序(Eclipse外部)。
对于上面的#2,请参阅环境变量CLASSPATH。它是一个以分号分隔的目录列表,随处可见。设置 not 会干扰Eclipse - 它会被忽略。
对于#1,类路径存储在工作区项目根目录中的文件“.classpath”中。要为类搜索添加外部目录,请添加以下格式的行:
<classpathentry kind="lib" path="yourclasspath"/>
我的.classpath条目如下所示
<classpathentry kind="lib" path="C:/Eclipse/classes"/>
也可以在Eclipse GUI中通过右键单击项目,选择Properties-&gt; Java Build Path来设置。然后选择Add External Class Folder并输入要存储类的目录。
希望这对其他人有用。
-John