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 同一目录下会 ...
随机推荐
- CSS中!important的作用
提升指定样式规则的应用优先权. IE6及以下浏览器有个比较显式的支持问题存在,!important在同一条规则集里不生效.请看下述代码: 示例代码: div { color: #f00 !import ...
- 1:时间戳转换成年月日函数,2:url截取参数方法,3:弹窗自定义方法 4:点击按钮加入购物车
最近一直在使用vue.js来构建项目,先分享一下一些简单可复用的函数. 1:时间戳转换Date.prototype.format = function(fmt){ //author: yumeiqia ...
- swift学习笔记之-可选链式调用
//可选链式调用 import UIKit /*可选链式调用(Optional Chaining) 1.在可选值上请求和调用该可选值的属性.方法及下标的方法,如果可选值有值,那么调用就会成功,返回可选 ...
- Office 365 – SharePoint 2013 Online 之WebPart开发、部署教程
1.打开Visual Studio,新建一个项目,选择SharePoint空项目,如下图: 2.选择调试站点和沙盒解决方案,如下图: 3.在项目中,添加一个WebPart,如下图: 4.添加完毕的项目 ...
- Kotlin语法(其他)
三.其他 [TOC] 1. 多重声明 有时候可以通过给对象插入多个成员函数做区别是很方便的: val (name, age) = person 多重声明一次创建了多个变量.我们声明了俩个新变量:nam ...
- Android 样式和主题(style & theme)
Android 样式 android中的样式和CSS样式作用相似,都是用于为界面元素定义显示风格,它是一个包含一个或者多个view控件属性的集合.如:需要定义字体的颜色和大小. 在CSS中是这样定义的 ...
- 10个学习Android开发的网站推荐
1. Android Developers 作为一个Android开发者,官网的资料当然不可错过,从设计,培训,指南,文档,都不应该错过,在以后的学习过程中慢慢理解体会. 2. Android Gui ...
- mysql java Cannot find the driver in the classpath!
确保你的mysql-connector-java有没有配置好, 如何配置: 从oracle上把mysql-connector-java下下来放到java_home里面的extensions里面,然后在 ...
- Android IPC机制之AIDL
什么是AIDL AIDL:Android Interface Definition Language,即Android接口定义语言. Android系统中的进程之间不能共享内存,因此,需要提供一些机制 ...
- sqlserver 附加数据库失败,错误提示:5拒绝访问 解决办法
sqlserver 附加数据库失败,错误提示:5拒绝访问 解决办法 金刚 sqlserver 附加数据库 拒绝访问 今天把项目拷贝到新硬盘里,发现在附加数据库中提示:操作系统错误5:"5拒绝 ...