Как запустить проект NetBeans в командной строке? - PullRequest
15 голосов
/ 09 марта 2009

Мой профессор попросил нас создать Java-программу, которая могла бы запускаться в командной строке, но также могла быть открыта с использованием NetBeans.

В программе используются различные типы сортировки (в частности, выборка, вставка, обмен, быстрая сортировка и сортировка по куче). наш профессор специально сказал нам использовать объектно-ориентированное программирование на Java, и она хочет видеть основной класс плюс различные классы, которые будут выполнять сортировку.

Я пытался написать программу в NetBeans - подумав, что позже я смогу просто запустить программу в cmd, используя javac.

В cmd я набрал путь, по которому был сохранен мой проект NetBeans, и попытался скомпилировать файлы, используя javac. но он говорит, что «javac не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл».

Поэтому я попытался сохранить файлы в sun> sdk> jdk> bin, и оттуда я попытался скомпилировать файлы, и это было нормально. Проблема возникает, когда я пытался их запустить.

Вот как я пытался скомпилировать файлы:

javac Main.java
      Sortchoice.java
      Selection.java
      SelectionSort.java
      Insertion.java
      InsertionSort.java
      Exchange.java
      ExchangeSort.java

(Я не закончил синтаксис для следующих двух сортировок.)

Вот как я пытался запустить файлы в cmd:

java Main Sortchoice Selection SelectionSort Insertion InsertionSort Exchange ExchangeSort

и cmd говорит:

exception in thread "main" java.lang.NoClassDefFoundError: main (wring name: myjava/Main)
at java.lang.ClassLoader.defineClass1(Nativ... Method)"
at java.lang.ClassLoader.defineClass(ClassL...
at java.security.SecureClassLoader.defineCl...
at java.net.URLClassLoader.defineClass(URLC...
at java.net.URLClassLoader.access$000(URLCl...
at java.net.URLClassLoader$1.run(URLClassLo...
at java.security.AccessController.doPrivile... Method)
at java.net.URLClassLoader.findClass(URLCla...
at java.lang.ClassLoader.loadClass(ClassLoa...
at sun.misc.Launcher&AppClassLoader.loadCla...
at java.lang.ClasLoader.loadClass(ClassLoad...
at java.lang.ClassLoader.loadClassInternal(...

Что мне делать? (Извините за мое длинное объяснение. Я просто хотел ввести как можно больше деталей.)

Я также хотел бы подчеркнуть, что я только начинающий в программировании на Java.

Ответы [ 7 ]

22 голосов
/ 09 февраля 2011

Если вы щелкнете по компоновке внутри NetBeans, она должна вывести (в выводе вашего компилятора) сообщение типа «Чтобы запустить это приложение из командной строки без Ant, попробуйте: java -jar yourPathToRun "

13 голосов
/ 09 марта 2009

Лучший способ сделать это это:

1) создайте каталог с src\ и tests\ в нем (тесты необязательны, если вы не используете JUnit).

2) предполагая, что у вас есть package myjava; в верхней части ваших файлов (и убедитесь, что это то, что хочет ваш проф, становится неудобно отмечать вещи, если они не в нужном месте), сделайте src\myjava каталог (и если вы делаете JUnit каталог tests\myjava).

3) скопируйте ваши файлы в каталог src\myjava

4) удалите проект NetBeans и воссоздайте его как новый с существующими источниками. При настройке каталогов src (и необязательных test) добавьте каталог src\ (и, возможно, tests\). НЕ добавляйте каталог src\myjava, иначе он не будет работать в NetBeans.

5) создайте каталог с именем classes\ (чтобы у вас были src\, classes\ и, возможно, \tests все в одном месте)

6) в командной строке введите javac -d classes -cp classes src/myjava/*.java

  • -d сообщает компилятору, куда поместить файлы .class
  • -cp сообщает компилятору, где искать файлы классов
  • src/myjava/*.java говорит ему скомпилировать все файлы .java в src/myjava

7) запустить его через java -cp classes myjava.Main

  • -cp классы говорят ему искать в каталоге классов файлы .class
  • myjava.Main - имя класса для запуска
6 голосов
/ 09 марта 2009
  1. Было бы лучше добавить javac в переменную окружения PATH, а не помещать файлы .java в один каталог с ним. Там будет ужасно тесно.
  2. Для запуска вам просто нужно

    java Main

    вместо ввода каждого класса в командной строке.

  3. Вы объявили пакет в своих файлах .java? Как,

    пакет myjava;

    ? Если это так, строка команды должна быть

    java myjava.Main

Это отвечает на ваши вопросы?

1 голос
/ 11 ноября 2010

Щелкните правой кнопкой мыши Мой компьютер> Свойства> Дополнительно> Переменные среды ... Добавьте каталог bin в jdk в переменную Path. пример: Имя переменной: путь Значение переменной: C: \ Program Files \ Java \ jdk1.6.0_16 \ bin

java и javac теперь должны работать из любого каталога в командной строке

0 голосов
/ 09 сентября 2017

Самый простой способ сделать это - запустить файл .jar в папке dist в основной папке вашего проекта. Убедитесь, что путь к папке jdk bin в папке System, Environmental Variables вашего компьютера настроен на поиск обычного: jar.exe, java.exe, javac.exe и т. Д. вам нужны инструкции для этого).

1) В Netbeans выполните чистую сборку, нажмите F11 или выберите меню Run и нажмите Build Project. Нажмите, чтобы пройти все запросы, для этого вам нужна чистая сборка.

2) в командной строке перейдите в папку dist вашего проекта

3) в командной строке введите и запустите: java -jar yourMainFile.jar

Не создавать отдельные папки, не копировать файлы, не включать несколько файлов в аргумент командной строки. Но вам придется пересобирать свой проект каждый раз, когда вы изменяете код, прежде чем запускать его в командной строке.

0 голосов
/ 23 июня 2016

Создайте папку где-нибудь, скажем C:\myjava. Скопируйте исходные файлы .java, откуда NetBeans сохраняет их, например, в C:\java. Откройте каждый из этих .java файлов, которые вы только что вставили, и удалите строку, в которой указан пакет, например, package myjava. Компиляция с использованием javac например javac c:\myjava\MyJava.java. Затем запустите его, как в, Java c:\myjava\MyJava

0 голосов
/ 09 марта 2009

Выполните следующие действия (примеры кода являются лишь примерами, вам нужно настроить некоторые из них для вашей настройки):

  1. Установите для JAVA_HOME каталог, в котором установлен JDK.

    set JAVA_HOME = "c: \ Program Files \ Java \ jre1.6.0_12"

  2. Настройте свой PATH для включения каталога bin в JAVA_HOME.

    set PATH =% PATH%:% JAVA_HOME% \ bin

  3. Перейдите в корневой каталог вашего исходного кода. Если вы объявили, что ваш код находится в пакетах, это корневой каталог структуры вашего пакета. Если нет, то это каталог, содержащий ваши файлы .java:

    cd c: \ My \ Source \ Directory

  4. Выполните javac с вашими файлами Java в качестве аргумента:

    javac Class1.java Class2.java

  5. (Предполагая, что все компилируется правильно) Выполните java с именем класса, содержащего ваш метод main в качестве аргумента (если вы включили объявления пакета, тогда ваше имя класса полностью определено, то есть оно должно включать имя пакета перед именем класса, с «.», отделяющим имя пакета от имени класса):

    Java Main

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...