Подтвердить что ты не робот

Использование Notepad ++ для компиляции кода Java

Я пытаюсь настроить Notepad ++ как небольшую среду Java, в основном для изучения Java, поскольку мне было сложно получить простую программу для работы с NetBeans, к сожалению, все советы по настройке Notepad ++ для вызова кода Java не работает.

Я думаю, что notepad ++ изменился или пакет разработки Java был массово изменен, потому что все примеры, которые я использовал, приводят к ошибкам, хотя есть мало места для ошибок.

чтобы начать, я нашел этот сайт: http://blog.sanaulla.info/2008/07/25/using-notepad-to-compile-and-run-java-programs/

это код для запуска Javac для компиляции кода:

javac "$(FILE_NAME)"

и

java "$(NAME_PART)"

чтобы запустить приведенный байт-код, однако это уже совсем не имеет успеха. Java правильно настроена, и я могу вызвать программу Java, чтобы сделать ее через CMD.

Используя плагин под названием npp и вызванный через F6 и запускаемый с этим кодом (данный в комментариях), удается скомпилировать Java-программу в правильный .class файл, однако команда не удалась при запуске программы

cd "$(CURRENT_DIRECTORY)"
javac $(FILE_NAME)
java $(NAME_PART)

ошибки в консоли в Notepad ++:

java.lang.NoClassDefFoundError: first
Caused by: java.lang.ClassNotFoundException: first
  at java.net.URLClassLoader$1.run(Unknown Source)
  at java.security.AccessController.doPrivileged(Native Method)
  at java.net.URLClassLoader.findClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: first.  Program will exit.
Exception in thread "main"

Я решил настроить Notepad ++ для компиляции и запуска кода, было бы легко и весело, но похоже, что вся документация в Интернете устарела, поскольку ничего не работает.

Я бы хотел легко скомпилировать и запустить Java-код из Notepad ++

Я мог бы просто использовать CMD, но я предпочел бы, чтобы он был более интегрирован в блокнот ++

Спасибо за любую возможную помощь. приветствия:)

EDIT: я использую последнюю версию Java, notepad ++ и имею Windows 7

ИЗМЕНИТЬ 2: код:

 //A Very Simple Example
 class ExampleProgram {

   public static void main(String[] args){

        System.out.println("I'm a Simple Program");
   }
 }
4b9b3361

Ответ 1

"Кривая обучения", связанная с IDE, например Eclipse или Netbeans, в основном включает в себя то, что у вас уже есть, - знание установки путей класса, переменных среды и т.д. Вместо Notepad ++ (который мне нравится, но это не "сделано" для Java), я бы рекомендовал Eclipse, особенно если у вас есть хриплый ПК (он немного голоден в памяти). Помимо настройки путей, после этого вы будете готовы качать.

И Eclipse активно и открыто разрабатывается, является одной из наиболее документированных IDE. Учебники должны работать правильно для него:). Но серьезно, это довольно хорошо. И затем, когда вы хотите перейти на разработку Android в Java или какой-либо другой тип программирования на Java, вы просто загружаете необходимые надстройки, и вы смеетесь. Он также поддерживает отладку, подобные которой Notepad ++, безусловно, не может конкурировать.

Ответ 2

Вероятно, изменив последнюю строку на:

java -cp . $(NAME_PART)

будет работать для вас. Проблема в том, что вы не настраиваете путь к классам.

Notepad ++ будет отлично подходит для компиляции одного файлового проекта. Для чего-то большего, чем вам понадобится IDE или хотя бы интегрировать с ant вместо java-компилятора.

Ответ 3

Задайте путь к классам в команде java следующим образом:

java -classpath "$(CURRENT_DIRECTORY)" "$(NAME_PART)"

Ответ 4

Хотя я убежден, что вам нужно работать с IDE (NetBeans, Eclipse, IntelliJ IDEA (который я использую), я считаю, что всегда полезно знать и учиться тому, что терпит неудачу в вашем маленьком примере. В среде IDE среда компиляции и среды выполнения настроена, но, как разработчик, важно понять скрытые основные понятия. Во всяком случае,

Из ссылки, которую вы опубликовали, вот переменные среды, которые вы должны определить

FULL_CURRENT_PATH: C:\Documents and Settings\Administrator\My Documents\JavaP\ExampleProgram.java
CURRENT_DIRECTORY: C:\Documents and Settings\Administrator\My Documents\JavaP\
FILE_NAME: ExampleProgram.java
NAME_PART: ExampleProgram
EXT_PART:java

Убедитесь, что все имена указаны в соответствии с этими настройками, например:

- your source file is under C:\Documents and Settings\Administrator\My Documents\JavaP\
- your source file is named ExampleProgram.java

Ответ 5

Я согласен с принятым ответом, но иногда использую Textpad, чтобы быстро писать/компилировать/запускать небольшие java-программы. Textpad имеет этот встроенный инструмент (Tools/External Tools). Если вы не видите эти параметры, я думаю, вам нужно перейти в Configure/Preferences/Tools и добавить их. Затем вы можете просто нажать Ctrl-1 для компиляции и Ctrl-2 для запуска. Это полезно для очень маленьких быстрых тестов, без библиотек или чего-то еще.

Ответ 6

Вы можете использовать eclipse, как было предложено выше, и просто создать проект java. После создания проекта просто перетащите файл java, с которым вы хотите работать в проекте, и выберите опцию файла ссылки. Таким образом, eclipse создаст копию вашего файла и свяжет его с вашим файлом, то есть каждое изменение, которое вы сделаете в один файл, будет скопировано в другой.

Ответ 7

Недавно я столкнулся с этой ситуацией в 64-разрядной версии Windows 7. Notepad ++ - это 32-битная программа, поэтому Windows включила "Перенаправление файловой системы" на нее и ее плагины (включая NppExec), согласно http://msdn. microsoft.com/en-us/library/windows/desktop/aa384187(v=vs .85).aspx. У меня также был установлен новейший 64-разрядный JDK 8.xx, но установлена ​​более ранняя 32-разрядная JRE 7.xx.

Теперь установщик JRE 7.xx поместил копию (или hardlink, я не проверял) java.exe в свой C:\Windows\system32, который на самом деле C:\Windows\SysWOW64\java. Exe. Это не относится к PATH из 64-битных приложений, таких как cmd.exe, но находится в (перенаправленном) PATH 32-разрядных приложениях.

Затем, после того как я установил JDK 8.xx, установщик не обновил мой PATH, поэтому добавил место установки JDK в конец моего PATH. С этой точки зрения я наблюдал следующее:

  • В командной строке Windows (cmd.exe, 64-разрядная версия) - оба javac.exe и java.exe были из местоположения JDK 8.xx(C:\Program Files\Java\jdk1.8.0_05\bin).
  • Из Notepad ++ (32-разрядная версия) была запущена JQK-версия javac.exe, но java.exe фактически запускался из C:\Windows\SysWOW64\java.exe - что привело к такой загрузке проблема.

Исправлено обновление или удаление 32-разрядной JRE.

Ответ 8

Вы можете попытаться добавить переменную системной среды для пути bin jdk. когда я запускал java на блокноте ++ в первый раз, я также столкнулся с подобной проблемой.

Ответ 9

Моя ситуация похожа на вашу,

Я скомпилировал и запустил приложение "hello world" в cmd правильно, но в блокноте ++ я могу выполнить компиляцию, но не могу запустить файл класса.

Причина в том, что я установил jdk1.7, установите PATH в jdk1.7, а затем я установил jdk1.6 тоже. Поэтому установщик jdk1.6 добавляет java.exe в% systemroot%\System32 (SySWOW64 в среде x64), но не javac.exe.

В то время как в cmd-модеме система javac.exe и java.exe в PATH, notepad ++ называется javac.exe в PATH, потому что нет javac в system32 и java.exe в системе32. (Вы можете запустить "javac -version" и "java -version" в блокноте ++, чтобы узнать)

Итак, я удалил java.exe в system32, а затем npp скомпилирован и работает отлично.

Надеюсь, это поможет кому угодно.

Ответ 10

вы можете использовать этот маленький код в модуле "run" для блокнота ++:

cmd /k "cd /D "$(CURRENT_DIRECTORY)" & java "$(NAME_PART)""

note: это почти такое же решение для кода, которое они использовали для запуска python в блокноте ++ как описано в этом разделе: Как выполнить файл Python в Notepad ++?

Ответ 11

Я нашел эту ссылку полезной.

Тем не менее, NppExec, похоже, имеет собственную JRE, поэтому я изменил сценарии на это (это означает, что вам нужно жестко определить java-адрес):

cd $(CURRENT_DIRECTORY)
C:\App\Java\jdk1.8.0_112\bin\java -version
C:\App\Java\jdk1.8.0_112\bin\javac $(FILE_NAME)
C:\App\Java\jdk1.8.0_112\bin\java $(NAME_PART)