簡體   English   中英

如何在java中編譯包?

[英]How to compile packages in 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,請幫助我

最好是從包外編譯和運行類:

首先用javac編譯:

$javac MyPack/AccountBalance.java

這將在名為AccountBalance.class的MyPack文件夾中創建一個新文件

然后你可以運行它:

$java MyPack.AccountBalance

順便說一句:不鼓勵包名稱以大寫字母開頭。

當您嘗試編譯java類時,請使用'-d'選項(destination)指定.class文件的位置。

javac -d "classes" AccountBalance.java

當您運行程序時,請確保類路徑中包含相同的文件夾:

java -classpath "classes" MyPack.AccountBalance

嘗試創建名為MyPack的文件夾並在其中移動.class文件,或使用以下命令行編譯java代碼,並將.class文件移動到MyPack文件夾中。

javac YourFileName.java -d .

並運行,

java MyPack.AccountBalance

看看javac工具

從工具doc:默認情況下,編譯器將每個類文件放在與其源文件相同的目錄中。 您可以使用-d指定單獨的目標目錄(請參閱下面的選項)。

教程。

如果您經常通過javacjava命令進行編譯和運行,那么請使用

javac MyJavaClass.java && java MyJavaClass

這將編譯該類,然后運行您剛剛編譯的類。

注意:替換&& ; 如果使用Windows PowerShell。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM