最近在Java编程过程中,常用到dos窗口对程序进行编译与运行。但是不方便之处在于每次都要输入命令进入将要编译的程序的目录(其实也有简单的方法,在文章末尾给出)。于是编写了一个配置文件,可以一次修改,经常使用。(只需要在下面程序中将路径修改为你所经常存放程序的目录)。前提当然是你已正确配置环境变量。具体方法为:将下面的程序放在新建的文本文件中,并将后缀名改为.bat.然后双击该文件,按提示操作即可!程序源码如下:(红色字体是需要根据你的存放路径修改的)

echo off
cls
title Java在dos窗口的编译与执行
color 0a
rem 将路径改为你将要编译执行的文件目录 例如:我的文件目录为"D:\studytool\Java\classes"(shift+右键 单击你的文件目录选择"复制为路径")
D:
cd D:\
cd studytool\Java\classes
set cd1=%cd%
echo 当前目录%cd1%下已有的文件:
dir /b
:cx
set /p filename=请选择要编译或执行的文件名(需写后缀名,按quit退出程序):
if "%filename%"=="quit" (exit)
set "leixing=%filename:~-5%"
set "leixing1=%filename:~0,-5%"
set "leixing2=%filename:~0,-6%"
if "%leixing%"==".java"  (
echo 请选择:(1.编译;2.执行;3.编译和执行)
choice /c 123
if errorlevel 3 (
echo 正在编译……
javac %filename%
echo 正在执行……
echo 执行结果为:
java %leixing1%
goto cx
)
if errorlevel 2  (
echo 该文件为.java文件,不能直接执行!
goto cx
 )
if errorlevel 1 (
echo 正在编译……
javac %filename%
goto cx
)
echo 此时目录%cd1%下已有的文件:
dir /b
goto cx
)

if "%leixing%"=="class" (
echo 请选择:(1.编译;2.执行;3.编译和执行)
choice /c 123

if errorlevel 3 (
echo  该文件为.class文件,不能编译!
goto cx
 )
if errorlevel 2  (
echo 正在执行……
echo 执行结果为:
java %leixing2%
goto cx
)
if errorlevel 1 (
echo  该文件为.class文件,不能编译!
goto cx
)
echo 此时目录%cd1%下已有的文件:
dir /b
goto cx
) else (echo 你输入的文件名有误!
goto cx)

pause
我的运行截图如下:
1.编译.java文件



2.执行.class文件

3.处理异常和退出

虽然上述方法比较人性化,但是也有不足之处:不能运行Java小程序。现在有一种更简单的方法能避免在dos窗口下进入程序所在目录的繁琐过程:将cmd.exe文件拷贝到程序的目录下即可。

原文:http://blog.csdn.net/tengweitw/article/details/32967117

作者:nineheadedbird

【Java编程】Java在dos窗口编译与执行的批处理的更多相关文章

  1. 【Java编程】Java在dos窗体编译与运行的批处理

    近期在Java编程过程中,常常使用到dos窗体对程序进行编译与执行. 可是不方便之处在于每次都要输入命令进入将要编译的程序的文件夹(事实上也有简单的方法,在文章末尾给出).于是编写了一个配置文件,能够 ...

  2. Windows学习总结(8)——DOS窗口查看历史执行过的命令的三种方式

    在DOS窗口执行了一些列命令完成某项工作后,如果要查看都执行了那些命令,该如何办呢?(前提:DOS窗口未关闭的情况下) 一.方法一: 使用↑↓箭头上下翻看执行过的命令,此方式适宜执行命令较少的情况. ...

  3. 在dos中编译java文件

    首先Dos中 编译java文件是:javac (所有)类名.java 运行java文件是:java 包名.类名 java指令默认在寻找class文件的地址是通过CLASSPATH环境变量中指定的目录中 ...

  4. 开始JAVA编程的敲门砖——JAVA开发环境搭建

    从头开始的java编程--JAVA开发环境搭建 一.什么是java的开发环境? 顾名思义java的开发环境是提供并保证整个java程序开发运行的必要的环境,搭建java开发环境是开始java编程的敲门 ...

  5. Java学习:注解,反射,动态编译

    狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! Java学习:注解,反射,动态编译 Annotation 注解  什么是注解 ? Annotat ...

  6. JAVA基础语法:java编程规范和常用数据类型(转载)

    JAVA基础语法:java编程规范和常用数据类型 摘要 本文主要介绍了最基本的java程序规则,和常用数据类型,其中侧重说了数组的一些操作. 面向java编程 java是纯面向对象语言,所有的程序都要 ...

  7. DOS窗口带jar包运行java程序

    由于工作环境的问题,有过一次这样的测试,需要在DOS窗口运行带有jar包的java程序 编译命令如下: javac -Djava.ext.dirs=./lib Test.java 或 javac -D ...

  8. 编译运行第一个Java程序——通过示例学习Java编程3

    作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=13 在本教程中,我们将了解如何编写.编译和运行Ja ...

  9. 在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类

    一.背景 最近在使用记事本编写带有包名并且有继承关系的java代码并运行时发现出现了很多错误,经过努力一一被解决,今天我们来看一下会遇见哪些问题,并给出解决办法. 二.测试过程 1.父类代码 pack ...

随机推荐

  1. C++ 虚函数表 多重继承

    上次研究的是单继承的情况,这次研究多重继承下的虚函数表的排列情况. 这次A,A1,A2,B这几个类的继承关系如下图: 测试代码如下: #include<iostream> using na ...

  2. Android Firebase 服务简介

    Firebase初步了解 什么事Firebase?Firebase成立于2011年,在被Google收购之前,Firebase是一个协助开发者快速构建App,能够提供行动应用专用开发平台及SDK的一款 ...

  3. Gazebo機器人仿真學習探索筆記(二)基本使用說明

    在完成Gazebo7安裝後,需要熟悉Gazebo,方便之後使用. 部分源代碼可以參考:https://bitbucket.org/osrf/gazebo/src/ 如果還沒有安裝請參考之前內容完成安裝 ...

  4. makefile的命令包定义及使用

    下面以\build\core\product.mk下面的内容为例介绍: define _find-android-products-files $(shell test -d device & ...

  5. ORACLE数据库学习之体系结构

     Oracle体系结构 ORACLE数据库体系结构决定了oracle如何使用网络.磁盘和内存.包括实例(instance),文件(file)和进程(process不包括后台进程)三部分. 实例:每 ...

  6. iOS7 CookBook精彩瞬间(一)property、selector细节、__unused

    1.我们常常使用nonatomic,很多人只知道它的效率较高,却不知道其含义,其含义是非线程安全的,也就是说多线程修改时不加锁,可能出现多个线程先后修改而成为脏数据的情况. 2.unsafe_unre ...

  7. Servlet配置与资源参数

    import java.io.*; import javax.servlet.*; import javax.servlet.http.*; // 继承HttpServlet 类 public cla ...

  8. C语言一个双向链表的实现

    首先编写头文件,头文件里做相关的定义和声明,DList.h内容如下: #ifndef DList_H #define DList_H typedef int Item; typedef struct ...

  9. 为什么不要重载 && 和 || 操作符!!!

    理论知识: 1)&&和 || 是C++中非常特殊的操作符 2)&&和 || 内置实现了短路规则 简单说明一下短路规则. demo1 #include <iostr ...

  10. UNIX环境高级编程——pthread_create的问题

    linux 下常用的创建多线程函数pthread_create(pthread_t * thread , pthread_attr_t * attr , void *(*start_routine)( ...