как запустить проект netbeans в командной строке?

<p>мой профессор попросил нас создать java-программу, которая могла бы запускаться в командной строке, но также могла быть открыта с использованием netbeans.</p><p>в программе используются различные типы сортировки (в частности, выбор, вставка, обмен, быстрая сортировка и куча). наш профессор специально сказал нам использовать объектно-ориентированное программирование на java, и она хочет видеть основной класс плюс различные классы, которые будут выполнять сортировку.</p><p>я пытался написать программу в netbeans - подумав, что позже я смогу просто запустить программу в cmd, используя javac.</p><p>в cmd я набрал путь, по которому был сохранен мой проект netbeans, и попытался скомпилировать файлы, используя javac. но он говорит, что «javac не распознается как внутренняя или внешняя команда, работающая программа или пакетный файл».</p><p>поэтому я попытался сохранить файлы в sun> sdk> jdk> bin, и оттуда я попытался скомпилировать файлы, и это было нормально. проблема возникает, когда я пытался их запустить.</p><p>вот как я пытался скомпилировать файлы:</p><pre><code>javac main.java sortchoice.java selection.java selectionsort.java insertion.java insertionsort.java exchange.java exchangesort.java </code></pre><p>(я не закончил синтаксис для следующих двух сортировок.)</p><p>вот как я пытался запустить файлы в cmd:</p><pre><code>java main sortchoice selection selectionsort insertion insertionsort exchange exchangesort </code></pre><p>и cmd говорит:</p><pre><code>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(... </code></pre><p>что я должен делать? (извините за мое длинное объяснение. я просто хотел указать как можно больше деталей.)</p><p>я также хотел бы подчеркнуть, что я только начинающий в программировании на java.</p>

<p>если вы щелкнете по компоновке внутри netbeans, она должна вывести (в выводе вашего компилятора) сообщение, например, «чтобы запустить это приложение из командной строки без ant, попробуйте: java -jar yourpathtorun»</p>

<p>лучший способ сделать это это:</p><p>1) создайте каталог с <code>src\</code> и <code>tests\</code> (тесты не обязательны, если вы не используете junit).</p><p>2) предполагая, что у вас есть <code>package myjava;</code> в верхней части ваших файлов (и убедитесь, что это то, чего хочет ваш проф, становится неудобно отмечать вещи, если они не в нужном месте), создайте каталог <code>src\myjava</code> (и если вы делает junit каталог <code>tests\myjava</code>).</p><p>3) скопируйте ваши файлы в каталог <code>src\myjava</code></p><p>4) удалите свой проект netbeans и воссоздайте его как новый с существующими источниками. при настройке каталогов <code>src</code> (и необязательных <code>test</code>) добавьте каталог <code>src\</code> (и, возможно, <code>tests\</code>). не добавляйте каталог <code>src\myjava</code>, иначе он не будет работать в netbeans.</p><p>5) создайте каталог с именем <code>classes\</code> (чтобы у вас были <code>src\</code>, <code>classes\</code> и, возможно, <code>\tests</code> все в одном месте)</p><p>6) в командной строке введите <code>javac -d classes -cp classes src/myjava/*.java</code></p><ul> <li><code>-d</code> сообщает компилятору, куда поместить файлы .class</li> <li><code>-cp</code> сообщает компилятору, где искать файлы классов</li> <li><code>src/myjava/*.java</code> говорит ему скомпилировать все файлы .java в <code>src/myjava</code></li> </ul><p>7) запустить его через <code>java -cp classes myjava.main</code></p><ul> <li><code>-cp</code> классы говорят ему искать в каталоге классов файлы .class</li> <li><code>myjava.main</code> - это имя класса для запуска</li> </ul>

<ol> <li>было бы лучше добавить javac в переменную среды path, а не помещать файлы .java в один каталог с ним. там будет ужасно тесно.</li> <li><p>чтобы бежать, вам просто нужно</p> <blockquote> <p><code>java main</code></p> </blockquote> <p>вместо того, чтобы помещать каждый класс в командную строку.</p></li> <li><p>вы объявили пакет в своих файлах .java? подобно,</p> <blockquote> <p>пакет myjava;</p> </blockquote> <p>? если это так, командная строка должна быть</p> <blockquote> <p><code>java myjava.main</code></p> </blockquote></li> </ol><p>это отвечает на ваши вопросы?</p>

<p>щелкните правой кнопкой мыши мой компьютер> свойства> дополнительные> переменные среды ... добавьте каталог bin в jdk в переменную path пример: имя переменной: путь значение переменной: c:\program files\java\jdk1.6.0\_16\bin</p><p>java и javac теперь должны работать из любого каталога в командной строке</p>

<p>выполните следующие действия (примеры кода являются лишь примерами, вам нужно настроить некоторые из них для вашей настройки):</p><ol> <li><p>установите в java\_home каталог, в котором установлен jdk.</p> <p>set java\_home = "c:\program files\java\jre1.6.0\_12"</p></li> <li><p>настройте path для включения каталога <code>bin</code> в java\_home.</p> <p>установить path =% path%:% java\_home%\bin</p></li> <li><p>перейдите в корневой каталог вашего исходного кода. если вы объявили свой код в пакетах, это корневой каталог структуры вашего пакета. если нет, то это каталог, содержащий ваши файлы .java:</p> <p>cd c:\my\source\directory</p></li> <li><p>выполните javac с вашими файлами java в качестве аргумента:</p> <p>javac class1.java class2.java</p></li> <li><p>(предполагая, что все компилируется правильно) выполните <code>java</code> с именем класса, содержащим ваш метод main в качестве аргумента (если вы включили объявления пакета, тогда ваше имя класса полностью определено, то есть оно должно включать имя пакета перед именем класса, с «.» отделяет имя пакета от имени класса):</p> <p>java main</p></li> </ol>

<p>создайте папку где-нибудь, скажем <code>c:\myjava</code>. скопируйте исходные файлы <code>.java</code> из того места, где netbeans сохраняет их, например, в свой <code>c:\java</code>. откройте каждый из этих файлов <code>.java</code>, который вы только что вставили, и удалите строку, содержащую пакет, например, <code>package myjava</code>. компиляция с использованием <code>javac</code>, например <code>javac c:\myjava\myjava.java</code>. затем запустите его, как в, java <code>c:\myjava\myjava</code></p>

<p>самый простой способ сделать это - запустить файл <code>.jar</code> в папке <code>dist</code> в основной папке вашего проекта. убедитесь, что путь к папке jdk <code>bin</code> в вашем компьютере <code>system</code>, <code>environmental variables</code> настроен так, чтобы найти обычные: <code>jar.exe</code>, <code>java.exe</code>, <code>javac.exe</code> и т.д. (смотрите другие публикации в этой теме, если вам нужны инструкции по этому поводу).</p><p>1) в netbeans выполните чистую сборку, нажмите <code>f11</code> или выберите меню <code>run</code> и нажмите <code>build project</code>. нажмите, чтобы пройти все запросы, вам нужна чистая сборка, чтобы сделать это.</p><p>2) в командной строке перейдите в папку <code>dist</code> вашего проекта</p><p>3) в командной строке введите и запустите: <code>java -jar yourmainfile.jar</code></p><p>не нужно создавать отдельные папки, не копировать файлы, не включать несколько файлов в аргумент командной строки. но вам придется пересобирать проект каждый раз, когда вы меняете код, прежде чем запускать его в командной строке.</p>