如何在java中编译包?

新手上路,请多包涵

我写了一个简单的打包程序:


   //A simple package

       package MyPack

       class Balance
       {
        String name;
        double bal;

        Balance(String n, double b)
        {
            name=n;
                    bal=b;
            }

        void show()
            {
            if(bal<0)
            System.out.println("-->");
            System.out.println(name+ ": $:" +bal);
        }
        }

        class AccountBalance
        {
            public static void main(String args[])
            {
                       Balance current[]=new Balance[3];
                    current[0]=new Balance("A.K.Juwatkar",123.123);
                    current[1]=new Balance("A.P.Dhoke",345.67);
                    current[2]=new Balance("Anil Sarang",100.98);

                    for(int i=0;i<3;i++)
                current[i].show();
               }
        }


我正在使用 Ubuntu 10.04 & 当我编译它时使用

java MyPack.AccountBalance

我收到以下消息:

 Exception in thread "main" java.lang.NoClassDefFoundError: MyPack/AccountBalance
Caused by: java.lang.ClassNotFoundException: MyPack.AccountBalance
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: MyPack.AccountBalance. Program will exit.

怎么了?请帮帮我。我已经安装了 openjdk,我还需要安装其他东西吗??我正在使用 Ubuntu 10.04,请帮助我

原文由 user1388626 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 578
2 个回答

最好是从包外部编译和运行类:

首先你用 javac 编译:

 $javac MyPack/AccountBalance.java

这将在名为 AccountBalance.class 的 MyPack 文件夹中创建一个新文件

然后你可以运行它:

 $java MyPack.AccountBalance

顺便说一句:不鼓励包名以大写字母开头。

原文由 Grims 发布,翻译遵循 CC BY-SA 3.0 许可协议

当您尝试编译 java 类时,请使用“-d”选项(目标)指定 .class 文件的位置。

 javac -d "classes" AccountBalance.java

当你运行你的程序时,确保相同的文件夹包含在你的类路径中:

 java -classpath "classes" MyPack.AccountBalance

原文由 shayan ray 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题