初学Java时很多老师不推荐使用Eclipse、IntelliJ IDEA等高级工具,因为这些工具帮助我们完成了很多工作,很容易让初学者忽略掉java程序的编写、编译、运行等环节的细节。所以老师往往推荐初学者使用EditPlus、NotePad++等高级记事本工具编写代码,促进对Java的了解。大家应该都知道,不管是EditPlus还是NotePad++,都可以配置java编译及运行环境,这样每次编译java不需要通过cmd窗口进行,省去了很多麻烦,但是有个问题是,当编译的java类中带包时,如何运行呢。恐怕这时候,通过网上的方法配置的java编译及运行环境就不太好用了吧。在这里我给大家介绍两种简单方法,在原配置的基础上小小改进,使得EditPlus能够编译并且运行带包的java类(NotePad++类似)。
在配置EditPlus之前,我们先来看看在控制台下如何实现Java带包的类编译及运行。简单起见。在D盘根目录下创建一个名为Demo的java源文件,代码如下:
package demo;
public class Demo{
public static void main(String[] args){
System.out.println("Hello word!");
}
}
将Demo.class放进手动创建在D盘根目录的文件夹demo中。
在控制台执行java demo.Demo后,java程序运行成功。
事实上,因为java源文件中带包,所以此时的类名应该为<包名.类名>,并且编译产生的类文件需放在名为包名的文件夹下才可以解释运行。
手动创建文件夹在有些时较麻烦,这里可以使用“javac -d <目录>(目录可自定义)源文件名”在指定目录下自动生成以包名为名的文件夹,并将类文件放在其中。
如果想让自动生成的文件夹与源文件在同一目录,则可将“javac -d <目录>”中的“<目录>”用“ . ”代替,即为“javac -d . ”,这样便省去了手动创建文件夹的步骤。
那么,在EditPlus中如何实现相同的功能呢,这里先介绍第一种。
打开EditPlus,进入Tools(工具)--> Configure User Tools...(配置自定义工具)。
1.添加编译功能。
点击Add Tool(添加工具)。
将Menu text(菜单文字)更改为javac_package(当然也可以是其他任意的,方便辨识即可)。
在Command(命令)中选择javac的完整路径,如果java环境变量配置好了,可以直接填写javac并在其后添加“-d .”。
Argument(参数)选择$(FileName)(文件名称)。
Initial(起始目录)选择$(FileDir)(文件目录)。
Action(动作)选择Capture output(捕获输出)。
其余保持默认,具体如图。
如果按上图配置不成功,可能是环境变量没有配置好的原因,解决方法是重新配置环境变量,或者按找下图配置。同样,配置java_package时同样。
2.添加运行功能(第一种方法)。
点击Add Tool(添加工具)。
将Menu text(菜单文字)更改为java_package1(当然也可以是其他任意的,方便辨识即可)。
在Command(命令)中选择java的完整路径,如果java环境变量配置好了,可以直接填写java。
Argument(参数)选择$(Prompt).$(FileNameNoExt)(输入命令行参数.不带后缀名文件名称)。
Initial(起始目录)选择$(FileDir)(文件目录)。
其余保持默认,具体如图。
下面我们试着用上面这种方法编译运行一下带包java类。
删掉之前生成的demo文件夹,在EditPlus打开Demo.java,使用自定义工具javac_package编译后可以看到编译成功,并且类文件也放在了与源文件同目录下自动产生的以包名为名的文件夹(demo)中。
使用java_package1运行,弹出一个输入框,输入类文件的包名后,运行成功。下面介绍第二种方法。
3.添加运行功能(第二种方法)。
第二种方法对应的编译功与第一种一样,这里就不再说明了,只说明其运行功能的实现。
点击Add Tool(添加工具)。
将Menu text(菜单文字)更改为java_package2(当然也可以是其他任意的,方便辨识即可)。
在Command(命令)中选择java的完整路径,如果java环境变量配置好了,可以直接填写java。
Argument(参数)选择$(CurSel).$(FileNameNoExt)(当前选中内容.不带后缀名文件名称)。
Initial(起始目录)选择$(FileDir)(文件目录)。
其余保持默认,具体如图。
经javac_package编译后用java_package2运行,会出现如下错误提示。怎么回事,说好的能运行呢,怎么配置好了出现错误?
其实在参数里我们是这样设置的“(CurSel).$(FileNameNoExt)(当前选中内容.不带后缀名文件名称)”,所以我们要先选中包名再运行,这样就OK了。
两种方法的原理相同,就是在使用java工具运行java类时,将<类名>改为<包名.类名>,两种方法,大家以个人爱好自行选择。
活用java -d <目录>命令还可以将Java类放在适当的位置,方便管理,在EditPlus中按照上面的方法进行相似的设置即可很方遍的编译运行,这里就不再赘述了。