Как скомпилировать пакеты в 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"); System.out.println(name+ ": $:" +bal); } } class AccountBalance { public static void main(String args[]) { Balance current[]=new Balance[3]; current[0]=new Balance("AKJuwatkar",123.123); current[1]=new Balance("APDhoke",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, любезно помогите мне

Лучше всего компилировать и запускать classы извне пакетов:

Сначала вы компилируете с помощью javac:

 $javac MyPack/AccountBalance.java 

это создаст новый файл в папке MyPack с именем AccountBalance.class

то вы можете запустить его:

 $java MyPack.AccountBalance 

Кстати: не рекомендуется начинать с имен пакетов с капитала.

Когда вы пытаетесь скомпилировать class java, используйте параметр -d (destination), чтобы указать, где должны находиться файлы .class.

 javac -d "classes" AccountBalance.java 

и когда вы запускаете свою программу, убедитесь, что та же папка включена в ваш путь к classу:

 java -classpath "classes" MyPack.AccountBalance 

Попробуйте создать папку с именем MyPack и переместить в нее файлы .class или использовать следующую командную строку для компиляции java-кода, и она перемещает файлы .class в папку MyPack .

 javac YourFileName.java -d . 

и запускать с использованием,

 java MyPack.AccountBalance 

Посмотрите инструмент javac

Из инструмента doc: По умолчанию компилятор помещает каждый файл classа в тот же каталог, что и его исходный файл. Вы можете указать отдельный каталог назначения с -d (см. Параметры ниже).

и учебник по пакету .

Если вы часто компилируете и запускаете команды javac и java используйте

 javac MyJavaClass.java && java MyJavaClass 

Это скомпилирует class, а затем запустит class, который вы только что скомпилировали.

Примечание: Замените && с помощью ; при использовании Windows PowerShell.

  • java.lang.IllegalStateException: только непрозрачные действия в полноэкранном режиме могут запрашивать ориентацию
  • Как сортировать дату, которая находится в формате строки в java?
  • Получение java.net.SocketTimeoutException: время ожидания подключения в android
  • Странное поведение java с приведениями к примитивным типам
  • Как ограничить пропускную способность в Java?
  • Что такое JAVA_HOME? Как JVM находит путь javac, хранящийся в JAVA_HOME?
  • HashMap: один ключ, несколько значений
  • какова разница между локальными и переменными экземпляра в Java
  • Как объект будет вызывать метод toString неявно?
  • Как преобразовать слова в число?
  • Должен ли я строго избегать использования перечислений на Android?
  • Давайте будем гением компьютера.