博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简易Java文本编译器(C++)
阅读量:5086 次
发布时间:2019-06-13

本文共 1974 字,大约阅读时间需要 6 分钟。

如何使用VS写一个Java的文本“编译器 ”?

所需程序:

          1、Visual Studio

          2、JDK

          你是否因为习惯于使用VS编译C/C++程序,在学java的时候改用新编译器而感到极度不适,是的,我也是...,VS界面又好看,操作又简单,难道就不能用VS编译Java吗?额...目前来说我不知道。为了表示不满,嗯,我用VS写了一个Java的“编译器”。

不知道你们的Java老师有没有讲过用文本来写java程序,如果不知道,下面我说一下:

一、使用文本写java程序:为什么要说这个呢?因为这就是我们这个“编译器”的原理。

              1、在文本中(假设文件名:Test)写好java代码后,另存为(.java)格式

              2、打开cmd窗口 ,cd(转移工作路径,不知道自行百度)到Test文件目录下

              3、输入: javac Test.java 回车       //此刻生成.class文件

              4、输入: java Test                         //这个时候进行编译,就能运行java程序了 

二、如果你将一个文件拖到命令框中,会输入什么?你可以试一下,输入的是该文件的路径       

三、C++文件流:用代码修改文件的内容。

 

上面的是我们制作这个小程序需要具备的知识,下面我讲一下流程:

使用cmd编译,我们需要准备什么呢?

                                                            (1).java格式文件;

                                                            (2)文件路径(用于cd);

                                                            (3)文件名(用于编译);

             1、首先将txt文件拖到命令框中,得到的是.txt的路径;

             2、根据这个文件路径,使用ifstream 打开txt文件;

             3、逐行读取,同时用ofstream将读取到的信息存为同目录的.java格式文件;(这样我们就得到.java的代码文件了)

            4、下面使用cmd编译,在C++中使用system()函数调用cmd,可能原来有小伙伴已经用过这个函数了(system("pause") :暂停 system("cls"):清屏 system(start 路径):打开文件)

            5、将之前得到的路径分隔,得到路径和文件名(不含后缀);

            6、先cd 路径,然后javac 文件名.java 最后java 文件名(注意要在同一个system中使用,用“&”连接,否则cd失效)

PS:

            就这样,我们制作好了一个简易的java编译器,当然,只能编译,除了能给出报错信息,没有其他特别智能的功能,其实用文本写未尝不是一件坏事,没有了自动填充,监视窗口,难度会增加,但却也让自己记得更深,反应更快,如图:

             

 

#include
#include
#include
using namespace std;int main() { string str, temp, name, Path; cout << "将文件(.txt)拖入框中:" << endl; cin >> str; //将文件拖入,会输入文件路径 ifstream In(str, ios::_Nocreate); //打开.txt,并且如果不存在,则不创建 if (!In) { cout << "文件不存在!" << endl; system("pause"); return 0; } cout << endl << " !!!编译成功!!!" << endl; cout << "------------------------------------------------------------" << endl; name = str.substr(str.rfind('\\') + 1, str.rfind('.') - str.rfind('\\') - 1); //分隔,只获取文本名 Path = str.substr(0, str.rfind('\\')); //分隔,获取路径 ofstream Out(Path + '\\' + name + ".java"); //生成.java while (!In.eof()) { getline(In, temp); Out << temp << endl; } In.close(); Out.close(); system(("cd " + Path + "&javac " + name + ".java" + "&java " + name).c_str()); //使用cmd进行编译 system("pause"); return 0;}

 

转载于:https://www.cnblogs.com/F-itachi/p/9974350.html

你可能感兴趣的文章
jdk工具keytool和jarsigner帮助Part2(jdk keytool&jarsigner tool manual)
查看>>
联想ThinkPad S3-S440虚拟机安装,ubuntu安装,Hadoop(2.7.1)详解及WordCount运行,spark集群搭建...
查看>>
Web前端面试题集锦
查看>>
Android 通过AIDL在两个APP之间Service通信
查看>>
关于笔试题输入输出的小问题
查看>>
微信公众平台开发(三)——二维码、创建菜单
查看>>
Spring框架基础解析
查看>>
Ruby入门——简介&基本概述
查看>>
MySql (二)入门语句和基本操作
查看>>
(*p)++和*(p++)和*p++的区别
查看>>
128. Longest Consecutive Sequence(leetcode)
查看>>
四边形不等式
查看>>
被swoole坑哭的PHP程序员
查看>>
jQuery对ajax的支持
查看>>
转 十大OpenGL教程
查看>>
iOS推送 (百度推送)
查看>>
<html>
查看>>
三种东西永远不要放到数据库里
查看>>
Struts访问web元素方法之---最常用的Ioc控制反转,依赖注入
查看>>
python 随机数、MD5加密及yield
查看>>