Ответ 1
Если вы нажмете build внутри NetBeans, он должен предоставить вам (в вашем компиляторе) сообщение типа "Чтобы запустить это приложение из командной строки без Ant, попробуйте: java -jar yourPathToRun "
Мой профессор попросил нас создать 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.
Если вы нажмете build внутри NetBeans, он должен предоставить вам (в вашем компиляторе) сообщение типа "Чтобы запустить это приложение из командной строки без Ant, попробуйте: java -jar yourPathToRun "
Лучший способ сделать это:
1) создайте в нем каталог с src\
и tests\
(тесты не являются обязательными, если вы не используете JUnit).
2), если у вас есть package myjava;
в верхней части ваших файлов (и убедитесь, что это то, что хочет ваш профессор, становится больно отмечать вещи, если они не в нужном месте), сделайте src\myjava
(и если вы делаете каталог JUnit a 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
классы говорят, что он ищет в каталоге классов для файлов .classmyjava.Main
- это имя запускаемого классаДля запуска вам просто нужно
java Main
вместо того, чтобы помещать каждый класс в командную строку.
Вы объявили пакет в ваших .java файлах? Как,
пакет myjava;
? Если это так, командная строка должна быть
java myjava.Main
Отвечает ли это на ваши вопросы?
Щелкните правой кнопкой мыши "Мой компьютер" > "Свойства" > "Дополнительно" > переменные среды... добавьте каталог bin в jdk в переменную "Путь" пример: Имя переменной: путь Значение переменной: C:\Program Files\Java\jdk1.6.0_16\bin
java и javac теперь должны работать из любого каталога в командной строке
Выполните следующие действия (примеры кода - это просто примеры, вам нужно будет настроить некоторые настройки):
Установите JAVA_HOME в каталог, где установлен JDK.
установить JAVA_HOME = "c:\Program Files\Java\jre1.6.0_12"
Установите PATH для включения каталога bin
в JAVA_HOME.
установить PATH =% PATH%:% JAVA_HOME%\bin
Перейдите в корневой каталог исходного кода. Если вы указали свой код в пакетах, это корневой каталог вашей структуры пакета. Если нет, это каталог, содержащий ваши .java файлы:
cd c:\My\Source\Directory
Выполните javac с вашими файлами Java в качестве аргумента:
javac Class1.java Class2.java
(Предположим, что все компилируется правильно) Выполните java
с именем класса, содержащего ваш основной метод, в качестве аргумента (если вы включили объявления пакета, то ваше имя класса будет полностью квалифицированным, то есть оно должно включать имя пакета перед именем класса, с "." разделяя имя пакета от имени класса):
java Главная
Создайте папку где-нибудь, скажем C:\myjava
. Скопируйте исходные файлы .java
туда, где netbeans сохраняет их на ваш C:\java
, например. Откройте каждый из этих файлов .java
, которые вы только что вставили, и удалите строку, в которой указан пакет, например package myjava
. Компилировать с использованием javac
, например. javac c:\myjava\MyJava.java
. Затем запустите его, как в, java c:\myjava\MyJava
Самый простой способ сделать это - запустить файл .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
Нет создания отдельных папок, копирования файлов и нескольких файлов для включения в аргумент командной строки. Но вам придется перестраивать проект каждый раз, когда вы меняете свой код, прежде чем запускать его в командной строке.