3

パッケージ内にmypackage.myclassクラスがあり、パッケージのルート (パッケージ内ではなく) と同じフォルダーにあるパッケージのクラスにアクセスしたい場合、anothepackage.anotherclass実際にどのように行うことができますか?

コードで示した例:

// 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

ファイル myclass 内:

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アクセスできますanotherclassyetanotherclass、またどのようにアクセスできますmyinnerclassか? 各クラスの特定のメンバーのみを使用したいので、インポートを控えるようにしてください (一部の変数は同じ名前を持ち、物事が台無しになります)! 前もって感謝します!

4

2 に答える 2

1

相対パスを使用します。

String dir = "../anotherpackage/anotheclass";
              ^
              |
              -- (go one level up)
于 2012-10-06T17:41:49.310 に答える
1

ジャバでしょ?

myClass内

import anotherPackage.anotherClass;

そして、 myClass 内で使用できます

  anotherClass ac=new anotherClass();

次に、オブジェクト「ac」を使用して、任意の anotherClass プロパティにアクセスできます。

パッケージとインポートについて読みたいと思うかもしれません

インポートを使用せずに編集 i のように完全修飾名の概念を使用できます

anotherPackage.anotherClass ac=new anotherPackage.anotherClass()

次に、ac toacees anotherClass プロパティを使用します

ところで、あなたが言及したように、異なるクラスにはいくつかの同じ変数があり、インポートによって混乱が生じる可能性があります。Java はオブジェクトを回避します。一部の変数が静的であっても、classnames.staticVar を使用してアクセスします。めちゃめちゃすることはあまりありません。:-)

更新: 以下の議論は、チャットからいくつかの有用なスニペットを包括的に取得していたため、チャットに移動されました

Askee はクラスパスの問題に直面していました

CLASSPATH 、名前が示すように、クラスへのパスです。Java ファイルをコンパイルすると、コンパイラは現在のディレクトリとクラスパスでクラスが必要とするリソースを探します。すべてが同じディレクトリにあることはできません(実際には可能です:-) )ので、使用します

set CLASSPATH

クラスパスを設定し、クラスを探す場所を設定します

質問では、ckass myClass が compilec を取得していませんでした。

org.apache.common.exec.DefaultExecutor was not in classpath

クラスパスに親ディレクトリを設定して機能させることをお勧めします

javac -classpath %cd%\.. myclass.java
于 2012-10-06T17:50:18.010 に答える