如果我在一个包中有一个类mypackage.myclass
,并且想要访问与包的根目录(不在包内)相同的文件夹中的包类,请说{ {1}}我怎么能这样做?
代码中显示的示例:
anothepackage.anotherclass
在myclass文件中:
// directories are preceeded by a DIR, files are precedded by a CLASS
// any level deeper is preceeded by a [Tab]
DIR mypackage
CLASS myclass
DIR myinnerpackage
CLASS myinnerclass
DIR anotherpackage
CLASS anotheclass
CLASS yetanotherclass
DIR org
DIR apache
DIR commons
DIR exec
CLASS DefaultExecutor
为什么这段代码对我不起作用?
一般来说,package mypackage;
public class myclass{
// simplest example code I can come up with
org.apache.commons.exec.DefaultExecutor exec = new org.apache.commons.exec.DefaultExecutor();
}
如何myclass
或anotherclass
以及yetanotherclass
如何能够访问它们?尝试克制导入,因为我只想使用每个类的某些成员(一些变量具有相同的名称并且会使事情搞乱)!提前谢谢!
答案 0 :(得分:1)
使用相对路径:
String dir = "../anotherpackage/anotheclass";
^
|
-- (go one level up)
答案 1 :(得分:1)
Java吧?
在myClass中
import anotherPackage.anotherClass;
然后在myClass中你可以使用
anotherClass ac=new anotherClass();
然后使用对象“ac”,您可以访问任何另一个类属性。
您可能想了解有关包裹和进口的信息
编辑 不使用进口 我可以使用完全限定名称的概念尝试
anotherPackage.anotherClass ac=new anotherPackage.anotherClass()
然后使用ac toacees anotherClass属性
按照你提到的方式,不同的类有一些相同的变量,导入可能会搞乱。 Java可以解决对象的问题,同样的名字也不会搞砸。即使某些变量是静态的,您也将使用classnames.staticVar进行访问。搞得太多了。 :-)
更新: 下面的讨论被转移到聊天,因为它变得越来越全面 聊天中的一些有用的片段
Askee面临类路径问题
CLASSPATH,顾名思义它是通往课程的路径。 当我们编译一个java文件时,编译器将在当前目录和类路径中查找该类所需的资源。 一切都不能在同一个目录中(实际上它可以是:-)),所以我们使用
set CLASSPATH
设置classpath以及在哪里查找类
在问题中,ckass myClass没有将compilec作为
org.apache.common.exec.DefaultExecutor was not in classpath
建议在类路径上设置父目录以使其正常工作
javac -classpath %cd%\.. myclass.java