1

パッケージを作成しました:

パス: /home/myid/py_ejb
ファイル: XmppMnager.java

package xmpp;

import org.jivesoftware.smack.Chat;
public class XmppManager {
}

でコンパイル

javac -d . -classpath .:smack.jar XmppManager.java

ファイル: XmppTest.java

import xmpp.*;

public class XmppTest {

    public static void main(String[] args) throws Exception {

        String username = "testuser1";
        String password = "testuser1pass";

        XmppManager xmppManager = new XmppManager("myserver", 5222);

..}

でコンパイル

$ javac  -classpath .:smack.jar:./xmpp XmppTest.java 
XmppTest.java:10: cannot access XmppManager
bad class file: RegularFileObject[./xmpp/XmppManager.class]
class file contains wrong class: xmpp.XmppManager
Please remove or make sure it appears in the correct subdirectory of the classpath.
        XmppManager xmppManager = new XmppManager("myserver", 5222);
        ^
1 error

このコンパイルの問題を修正するために多くの方法を試しましたが、消えません

4

2 に答える 2

2

パッケージ名は、クラスパス ディレクトリ構造に直接関連しています。xmppパッケージ内のすべてのクラスは、という名前のフォルダーにあるxmpp必要があり、このフォルダーはクラスパス上にある必要があります。同様に、 というパッケージがある場合はxmpp.util.io、ファイルを に配置する必要がありますxmpp/util/io/

通常の慣例では、srcすべてのソース ファイルを保持するディレクトリを作成し、パッケージ構造と完全に一致するディレクトリ構造をそのディレクトリに配置できます。パッケージに関するかなりまともなチュートリアルがここにあります。


また、これはおそらく質問のタイプミスのように見えますが、ファイルがXmppMnager.javaではなく実際に名前が付けられている場合XmppManager.java、それもコンパイルされません。

于 2013-08-29T14:40:13.877 に答える