Использование 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");
}
}
Ответы
Ответ 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)