Java使用notepad ++和nppexec编译和运行

时间:2013-06-20 01:58:12

标签: java notepad++ nppexec

请记住,在windows shell中进行编译是有效的,因此这个问题很少(如果不是零)可能是PATH问题。

我花了很多时间研究如何做到这一点,我在网上找到的所有结果都表明你可以这样做:

NPP_SAVE
javac $(FILE_NAME)
java $(NAME_PART)

但这对我不起作用。在NPP_EXEC控制台中,我可以输入java,并且我从cmd获得正常结果,但是每当我输入javac时,我都会收到可怕的错误代码2错误:

================ READY ================
javac
javac
CreateProcess() failed with error code 2:
The system cannot find the file specified.

================ READY ================

修改

我必须澄清一些困惑:

  1. 此解决方案应在单个脚本中运行。目标是能够更改代码,按热键组合(在Visual Studio中考虑F5)并构建/编译并运行。
  2. 实际问题是iirc,记事本++由于某种原因没有认识到javac ..
  3. 对不起因为混乱......

4 个答案:

答案 0 :(得分:4)

我使用此Article轻松设置了它,或者您也可以看到另一个blog post非常简单且有用。

现在我们可以设置N ++和NppExec,以便我们的程序可以单手运行N ++。

首先使用 Java编译

的名称保存此脚本
NPP_SAVE

cd "$(CURRENT_DIRECTORY)" 
"C:\Program Files (x86)\Java\jdk1.7.0\bin\javac" $(FILE_NAME)

这里主要是你的java编译器的路径,在我的情况下,它位于C目录中,并且很可能与你的相同,但32位和64位操作系统之间仍有区别。

现在使用其他名称保存此脚本,例如编译并运行

cd "$(CURRENT_DIRECTORY)" 
"C:\Program Files (x86)\Java\jdk1.7.0\bin\java" -classpath "$(CURRENT_DIRECTORY)" "$(NAME_PART)"

现在将脚本添加到N ++中的宏中,以便从那里开始工作,

转到 NppExec 插件中的 高级选项

A:选中顶部显示“放置到宏子菜单”的框

B:从“关联脚本”组合框中选择脚本。它会自动填写“项目名称”

C:现在点击“添加/修改”按钮。

D:点击“确定”。这将退出高级选项框并说需要重新启动NotePad ++(在添加其他脚本之前不要重新启动它。)
我们必须单击OK,因为这是清除框以添加下一个脚本的最简单方法,否则它可能会覆盖现有的菜单选项。

E:重复这些步骤以添加其他脚本,然后重新启动它。

现在就完成了。

答案 1 :(得分:4)

我的解决方案改编自npp_exec帮助文件(插件> Npp_Exec>帮助/手册>第4.7.2节)。这对我没有任何问题,并假设您的JDK bin路径已添加到Windows系统(或用户)环境变量“Path”。

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

答案 2 :(得分:1)

我终于,经过5个多小时的谷歌搜索和反复试验,有一个有效的NPP Exec脚本,可以编译和运行java程序,而无需离开记事本++。

NPP_SAVE
cmd /K (javac "$(FULL_CURRENT_PATH)" && exit) || exit
cmd /K (cd /D "$(CURRENT_DIRECTORY)" && java $(NAME_PART) && exit) || exit

唯一剩下的就是找到一种方法来完成上述操作,而无需调用并向cmd发送参数,所有这些都在notepad ++和nppexec中。

如下面的评论中所述,如果您使用的是套餐,则需要相应地编辑第二行。如果您的包名与您的文件名相同,则以下内容应该有效:

  

cmd / K(cd / D“$(CURRENT_DIRECTORY)”&& java -cp .. $(NAME_PART)。$(NAME_PART)&& exit)||出口

答案 3 :(得分:0)

NppExec上的这个脚本在我的案例中起作用。确保您的路径与您在计算机上安装的Java版本匹配。

NPP_SAVE 
cd $(CURRENT_DIRECTORY) 
C:\ProgramFiles\Java\jdk1.8.0_66\bin\javac $(FILE_NAME) 
C:\ProgramFiles\Java\jdk1.8.0_66\bin\java $(NAME_PART)