notepad++编译并运行java (自定义包)
最近用Notepad++写汇编,感觉用起来挺顺手,于是想能不能也在这个优秀的编辑器下编写java并编译运行呢,因为每次启动eclipse都要挺长时间,而且eclipse实在太占内存了。。。
于是各种百度之后,看网上的教程,使用Notepad++的NppExec(Notepad++的一个插件)实现了这一点。
附网址:http://jingyan.baidu.com/article/a65957f4fedcc424e67f9bd1.html
http://jingyan.baidu.com/article/7082dc1c712b77e40a89bd8d.html
教程里基本都是用到了这两个命令:
javac -encoding UTF- "$(FULL_CURRENT_PATH)" java -cp "$(CURRENT_DIRECTORY)" "$(NAME_PART)" // Notepad++的环境变量
|
变量名称 |
含义 |
|
FULL_CURRENT_PATH |
文件路径名称 |
|
CURRENT_DIRECTORY |
文件目录 |
|
FILE_NAME |
文件全名称 |
|
NAME_PART |
文件名称 |
|
EXT_PART |
文件扩展名 |
然而,我写的Java代码里大都使用了package语句,使用这两个命令运行时就会出现“找不到或无法加载主类”的错误。
最后实在没办法,我就用C++写了两个程序。
//myjavac.cpp
1 #include <iostream>
#include <windows.h>
#include <string>
#include <sstream>
#include <fstream>
using namespace std;
int main(int argc,char* args[])
{
]),s2(args[]);
string j;
j="javac -d "+s1+" "+s2; //javac -d directory_name file_name
cout<<j<<endl;
system(&j[]);
system("Pause");
;
}
//myjava.cpp
1 #include <iostream>
#include <windows.h>
#include <string>
#include <sstream>
#include <fstream>
using namespace std;
int main(int argc,char* args[])
{
string name,name1;
stringstream tp,tp1;
]);
;
;ind<=ss.length();ind++){
if(ss[ind]=='\\'||ss[ind]=='\\\\'){
index=ind;
}
}
;in<=ss.length();in++){
tp<<ss[in];
}
tp>>name1;
;;in++){
if(name1[in]=='.'){
break;
}
tp1<<name1[in];
}
tp1>>name;
cout<<"class:"<<name<<endl;
fstream filestr(args[],fstream::in|fstream::out);
string s="",t="";
filestr>>s;
string j;
stringstream ss1;
if(s=="package"){
filestr>>t;
int x=t.length();
t[x-]='\0';
cout<<"package:"<<t<<endl;
ss1<<"java "<<t<<"."<<name; //java package_name.main_class_name
}
else{
ss1<<"java "<<name; //java main_class_name
}
filestr.close();
j=ss1.str();
cout<<j<<endl;
system(&j[]);
system("Pause");
;
}
把生成的两个EXE文件放在一个文件夹(比如F:\\myshell)里,然后再把这个文件夹添加到系统的PATH环境变量里,
然后打开Notepad++,点击运行菜单中的运行
输入exe的文件名,myjavac后面的两个参数是"$(CURRENT_DIRECTORY)" "$(FULL_CURRENT_PATH)"
myjava后面的两个参数是"$(FULL_CURRENT_PATH)" "$(NAME_PART)" (参数之间用空格隔开)
然后点击保存,输入名称,选择快捷键(不选也可以),就可以把自己的命令添加到运行菜单了。

还可以通过修改C++代码或是使用批处理把两个命令合并为一个命令。
/------------------------------------------------------2015.6.27更新-----------------------------------------------------------------------------------/
发现自己的程序无法应付多个java文件的编译。所以又改写了myjavac.cpp的代码
//myjavac.cpp
1 #include <iostream>
#include <windows.h>
#include <string>
#include <sstream>
#include <fstream>
using namespace std;
int main(int argc,char* args[])
{
]);
string dir="dir "+s1+" /b >java_files.txt";
cout<<dir<<endl;
system(&dir[]);
];
;i<=;i++){
filenames[i]="";
}
fstream file("java_files.txt");
;
while(file.eof()==false){
file>>filenames[index];
index++;
}
file.close();
system("del java_files.txt");
stringstream ss;
ss<<"javac -d "<<s1<<" ";
;;in++){
if(filenames[in]!=""){
string temp=filenames[in];
, temp.length()-,){
ss<<filenames[in]<<" ";
}
}
else{
break;
}
}
string j;
j=ss.str();
cout<<j<<endl;
system(&j[]);
system("Pause");
;
}
此时myjavac的参数就只需要 "$(CURRENT_DIRECTORY)" 了。
至此就实现了
javac -d directory_name file_name1 file_name2 file_name3...
java package_name.main_class_name
这两个命令。也就能实现绝大多数情况下的Java编译和运行了。
/--------------------------------------------------------------2015.7.2更新--------------------------------------------------------------------/
后天期末考试,这两天紧张复习中。。。压力山大
发现程序似乎依然有小错误,当文件名长度小于5的时候。。。有空再改
notepad++编译并运行java (自定义包)的更多相关文章
- Notepad++编译和运行Java
首先要让Notepad++编译和运行Java,前提是电脑里已经配置好了Java的环境(这里可以参考我博客里关于Java环境配置的那篇随笔). 在Notepad++上面的选项栏中找到 插件---> ...
- Notepad++如何编译、运行Java
首先要让Notepad++编译和运行Java,前提是电脑里已经配置好了Java的环境(这里可以参考我博客里关于Java环境配置的那篇随笔). 在Notepad++上面的选项栏中找到 插件---> ...
- Notepad++-第一篇命令行语句执行之编译、运行Java
1.让Notepad++编译和运行Java,在电脑上要已经配置好了Java的开发环境 2.在Notepad++上面的选项栏中找到 Plugins--->Plugin Admin 3.在Avail ...
- [JAVA] 一个可以编辑、编译、运行Java简单文件的记事本java实现
本来是Java课做一个仿windows记事本的实验,后来突然脑子一热,结果就给它加了一个编译运行Java文件的功能. 本工程总共大约3000行代码,基本上把所学的java界面.文件.控件的功能都包含在 ...
- 使用CMD命令编译和运行Java程序
对于初学者来说,使用CMD命令(Unix以及类Unix系统采用Termial)来编译和运行Java的好处是让初学者直观地体会到编译(Compile)这一步骤,加深记忆.所谓编译就是将文本文件xxx.j ...
- 【Java】【转】在命令行中编译和运行java
原文:http://blog.csdn.net/u010900574/article/details/50792353 同时加载编译多个jar包和java文件 在个人平常使用或者当我们把代码部署到Li ...
- 在 Sublime Text 2 中编译和运行 Java 程序,以及输出中文出错问题解决办法
Sublime Text 2 是我最喜欢用来编码的文本编辑器,如果你尝试使用后相信你也会喜欢上它的.在这篇文章中我们将讨论如何在 Sublime Text 2 中编译和运行 Java 程序. 第一步: ...
- 在linux命令行中编译和运行java文件
同时加载编译多个jar包和java文件 在个人平常使用或者当我们把代码部署到linux服务器上的时候,我们经常需要通过命令行编译和运行java文件,网上关于这个的方法大多是通过 javac -cp f ...
- 如何使用命令行编译以及运行java文件
要想编译和运行java文件,很简单,只需要两个命令: (1) javac:作用:编译java文件:使用方法: javac Hello.java ,如果不出错的话,在与Hello.java 同一目录下会 ...
随机推荐
- sublime text3 之snippet编写代码片段
sublime text 3 中有个强大的功能就是可以编写各种文件类型的snippet代码片段,可以节省大量的时间. 文件名为:jekyll-top.sublime-snippet(.sublime- ...
- 使用nodejs+express+socketio+mysql搭建聊天室
使用nodejs+express+socketio+mysql搭建聊天室 nodejs相关的资料已经很多了,我也是学习中吧,于是把socket的教程看了下,学着做了个聊天室,然后加入简单的操作mysq ...
- 【追寻javascript高手之路02】变量、作用域知多少?
前言 本来想把这个与上篇博客写到一起的,但是考虑到是两个知识点还是分开算了,于是我们继续今天的学习吧. 基本类型与引用类型 ECMAScript的的变量有两种类型: 基本类型(值类型):简单数据段 引 ...
- .net MVC 连接数据本地数据库三种方法
<appSettings> <add key="webpages:Version" value="2.0.0.0" /> <add ...
- 用JS描述的数据结构及算法表示——栈和队列(基础版)
前言:找了上课时数据结构的教程来看,但是用的语言是c++,所以具体实现在网上搜大神的博客来看,我看到的大神们的博客都写得特别好,不止讲了最基本的思想和算法实现,更多的是侧重于实例运用,一边看一边在心里 ...
- iOS UIView设置圆角
UIView设置圆角 1.比较简单的情况,UIView四个角都是圆角: UIView *aView = [[UIView alloc] init]; aView.frame = CGRectMake( ...
- ArcGIS Desktop 遇到严重的应用程序错误
由于项目初验,忙了几个月(感觉忙得并不值),好久都没更新博客了. 一.问题 在关闭ArcMap时,ArcGIS Desktop 遇到严重的应用程序错误.环境是Windows 10,新装的系统.以前出现 ...
- YARN的内存和CPU配置
时间 2015-06-05 00:00:00 JavaChen's Blog 原文 http://blog.javachen.com/2015/06/05/yarn-memory-and-cpu- ...
- 需要记住的几个ASCII码
--------- A--------- a---------
- 【数据库】MySQL的安装与简单使用
首先我们要下载Mysql的安装包,大家可以到http://mysql.com官网中根据自己的电脑系统版本下载 也可以点击 MySQL资源 下载 密码:btuu 建议下载5.7以上的版本,因为省掉了许多 ...