当前位置: 首页 > 面试题库 >

如何在Java中编译软件包?

衡翰藻
2023-03-14
问题内容

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

  //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,请帮帮我


问题答案:

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

首先,您使用javac进行编译:

$javac MyPack/AccountBalance.java

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

然后可以运行它:

$java MyPack.AccountBalance

顺便说一句:不建议将软件包名称以大写字母开头。



 类似资料:
  • 问题内容: 我有以下由Eclipse生成的代码(.java文件)。 现在,我想从命令行编译以上文件。我转到了源代码所在的目录,并尝试了两个命令: 1. javac HelloWorldSWT.java 2. javac -d / home / myname / workspace / HelloWorldSWT.java 在这两种情况下,我都有相同的错误“无法解析导入org.eclipse”。/

  • 虽然不能定做,但依然有许多人会去吃麦当劳,因为麦当劳的汉堡符合大多数人的口味;同样,预编译软件包也可以满足大多数用户的需求,如果没有特殊需求,很少有人会选择编译软件 最早的软件包管理系统不支持网络,类似于在 Windows 下安装软件,你必须获取一个安装包(比如通过网络下载),然后在本地安装它。使用这种方式安装软件的包管理系统主要有:dpkg(debian系)、rpm(redhat系) 由于 Li

  • 我有两个java文件,(main.java,test.java)在每个文件中我编写了包ADT; 我在main.java内部编写了一个名为ADT的类,在我的test.java中将该类称为ADT。 有人能帮我吗?

  • 问题内容: 我可以使用什么程序反编译类文件?我实际上会得到Java代码,还是仅仅是JVM汇编代码? 关于此站点上的Java性能问题,我经常看到“反编译” Java类文件以了解编译器如何优化某些东西的人们的回答。 问题答案: 有一些反编译器…快速搜索结果: Procyon: open-source (Apache 2) and actively developed Krakatau: open-so

  • 问题内容: 我已经搜索过了,但是找不到或无法理解。 现在我不是Java程序员,但是我需要将一个Java文件编译成一个现有的(已编译的)Java程序。该Java代码的源代码对我 不可 用,因此我无法编译整个项目。 我对反编译原始项目不感兴趣。 如何仅使用JDK和javac快速完成此操作?(通过命令行是我的首选。) 我知道这样做必须禁用单个java文件外部的错误检查,因为它无法读取依赖项。 在此先感谢

  • 问题内容: 我正在尝试使用OpenJDK7根据OSGi规范4.3编译我的OSGi捆绑软件,但出现错误: 这是我的Activator.java: 和我的pom.xml: 当我使用OpenJDK 6时,不会出现此错误。任何提示如何使它与OpenJDK 7一起使用? 问题答案: 您需要使用Java 7中的javac重新编译OSGi源代码。OSGi使用-target jsr14使用Java 6 javac