`
郑云飞
  • 浏览: 795774 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

郑云飞Java可视化编译器

阅读更多
package a;

public class javaEdit
{
	public static void main(String[] args)
	{
		MyTest mt=new MyTest();
	}
}

 

package a;

public class ListEle
{
	String text;
	int	index;

	public ListEle(String text, int index)
	{
		this.text=text;
		this.index=index;
	}
	public ListEle()
	{
		text = "";
		index= 0;
	}
}

 

package a;
import java.util.LinkedList;
class MyQueue
{

	private LinkedList<ListEle> ll = new LinkedList<ListEle>();

	public void put(ListEle o)
	{
		ll.addFirst(o);
	}

	public ListEle get(int index)
	{
		return ll.get(index);
	}

	public int size()
	{
		return ll.size();
	}

	public void removeLast()
	{
		ll.removeLast();
	}

	public void clear()
	{
		ll.clear();
	}
	
}

 

package a;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.TextArea;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class MyTest extends JFrame implements ActionListener
{
	// 定义所需要的组件
	TextArea jta = null;
	TextArea jta1 = null;
	// 菜单条
	JMenuBar jmb = null;
	JMenu jm = null, jm1 = null, jmNew, jmHelp;
	JMenuItem jmi1 = null,jmi11;
	JMenuItem jmi2 = null, jmi3 = null, jmi4 = null, jmi5, jmi6, jmHelp1,
			jmBefore, jmNext;
	String fileNameE, fN, end = ".java";
	String name = "ClassName", namefile = "";
	String savepath = "", openName = "";
	String javaName = "";// 保存打开的文件后java程序的名称
	String ph;
	File path;
	boolean isSaveJava = false;// 定义一个标志,程序是否保存
	boolean isBianyi = false;
	int isOpenOrNew = 0;// 定义一个变量,用于判断是打开的java文件(isOpenOrNew=1)还是新建的java程序(isopenOrNew=2)
	int runOpenOrNew = 0;// 定义一个变量,用于判断运行的是打开的java文件(isOpenOrNew=1)还是新建的java程序(isopenOrNew=2)
	int currentStep = 0, step = 1;
	MyQueue mq = new MyQueue();

	public MyTest()
	{

		this.setTitle("记事本");
		// 初始化文本编译器(代码区)
		jta = new TextArea("/**\n*代码区间*/\n", 10, 50);// 文本编辑于
		jta.setBackground(Color.pink);// 设置颜色
		jta.setFont(new Font("Dialog", Font.PLAIN, 15));
		// 初始化文本编译器(运行区)
		jta1 = new TextArea("编译运行区间", 10, 50);
		jta1.setBackground(Color.green);
		jta1.setFont(new Font("Dialog", Font.PLAIN, 15));
		// 初始化工具栏
		jmb = new JMenuBar();

		// 初始化菜单栏
		jm = new JMenu("文件");
		jm1 = new JMenu("运行");
		jmNew = new JMenu("项目");
		jmHelp = new JMenu("帮助(H)");

		// 设置助记符
		jm.setMnemonic('F');
		jm1.setMnemonic(1);
		// 初始化子菜单列表
		jmi1 = new JMenuItem("打开文件", new ImageIcon("./image/61.gif"));
		jmi2 = new JMenuItem("文件另存为", new ImageIcon("./image/61.gif"));
		jmi11=new JMenuItem("退出", new ImageIcon("./image/61.gif"));
		jmi3 = new JMenuItem("编译", new ImageIcon("./image/61.gif"));
		jmi4 = new JMenuItem("运行", new ImageIcon("./image/61.gif"));
		jmi5 = new JMenuItem("新建Java", new ImageIcon("./image/61.gif"));
		jmi6 = new JMenuItem("保存java", new ImageIcon("./image/61.gif"));
		jmHelp1 = new JMenuItem("帮助", new ImageIcon("./image/61.gif"));
		jmBefore = new JMenuItem("上一步", new ImageIcon("./image/61.gif"));
		jmNext = new JMenuItem("下一步", new ImageIcon("./image/61.gif"));
		// 注册监听
		jmi5.addActionListener(this);
		jmi5.setActionCommand("newjava");
		jmi6.addActionListener(this);
		jmi6.setActionCommand("savejava");
		jmi1.addActionListener(this);
		jmi1.setActionCommand("open");
		jmi2.addActionListener(this);
		jmi2.setActionCommand("save");
		jmi11.addActionListener(this);
		jmi11.setActionCommand("exit");
		jmi3.addActionListener(this);
		jmi3.setActionCommand("bianyi");
		jmi4.addActionListener(this);
		jmi4.setActionCommand("run");
		jmHelp1.addActionListener(this);
		jmHelp1.setActionCommand("help");
		jmBefore.addActionListener(this);
		jmBefore.setActionCommand("before");
		jmNext.addActionListener(this);
		jmNext.setActionCommand("next");

		// 设置工具栏
		this.setJMenuBar(jmb);

		// 加入菜单栏
		jmb.add(jm);// 文件
		jmb.add(jm1);// 运行
		jmb.add(jmNew);// 项目
		jmb.add(jmHelp);// 帮助
		// 加入菜单栏的子选项
		// 文件的子菜单
		jm.add(jmi1);
		jm.add(jmi2);
		jm.add(jmi11);
		// 运行的子菜单
		jm1.add(jmi6);
		jm1.add(jmi3);
		jm1.add(jmi4);
		// 项目的子菜单
		jmNew.add(jmi5);
		jmNew.add(jmBefore);
		jmNew.add(jmNext);
		// 帮助的子菜单
		jmHelp.add(jmHelp1);

		// 设置布局管理其
		this.setLayout(new GridLayout(2, 1));

		this.add(jta);
		this.add(jta1);

		// 设置窗口大小
		this.setSize(800, 600);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
		// 将jta(即文本编辑区)增加键盘的监听事件
		jta.addKeyListener(new KeyAdapter()
		{
			public void keyTyped(KeyEvent e)
			{
				addQ();
			}
		});
	}

	public void addQ()
	{
		// jta.getCaretPosition()返回文本插入符的位置。插入符的位置被限制在 0
		// 和文本最后一个字符(包括)之间。如果没有设置文本或插入符,则默认插入符的位置为 0。
		ListEle list = new ListEle(jta.getText(), jta.getCaretPosition());
		if (jta.getText().length() > 0)
		{
			if (mq.size() < 200)
			{
				mq.put(list);
			}
			else
			{
				mq.removeLast();//移除并返回此列表中的最后一个元素
				mq.put(list);
			}
		}
	}

	public void actionPerformed(ActionEvent e)
	{

		if (e.getActionCommand().equals("open"))
		{
			openFile();
		}
		else if (e.getActionCommand().equals("save"))
		{

			saveFile();
		}
		else if(e.getActionCommand().equals("exit"))
		{
			int a=JOptionPane.showConfirmDialog(this, "确定要离开?");
			if(a==0)
			{
				System.exit(1);
			}
			
		}
		else if (e.getActionCommand().equals("newjava"))
		{
			newJava();

		}
		else if (e.getActionCommand().equals("savejava"))
		{

			saveJava();
		}
		else if (e.getActionCommand().equals("bianyi"))
		{
			bianyiJava();

		}
		else if (e.getActionCommand().equals("run"))
		{
			runJava();
		}
		else if (e.getActionCommand().equals("help"))// 帮助菜单
		{
			helpFile();

		}
		else if (e.getActionCommand().equals("before"))// 上一步
		{

			if (currentStep + step <= mq.size() - 1)
			{
				currentStep += step;
			}
			else
			{
				currentStep = mq.size() - 1;
			}
			jta.setText(mq.get(currentStep).text);

		}
		else if (e.getActionCommand().equals("next"))// 下一步
		{

			if (currentStep - step >= 0)
			{
				currentStep -= step;
			}
			else
			{
				currentStep = 0;
			}
			jta.setText(mq.get(currentStep).text);
		}

	}

	private void helpFile()
	{
		System.out.println("nihao");
		String help1 = "各按钮用法说明:" + "\n\n" + "1.保存文件默认是在当前目录下(即和编译器exe文件相同目录)。";
		String help2 = "\n\n" + "2.如果要把其他地方复制好的代码直接贴到编辑区编译,"
				+ "\n首先用所贴代码相应的*.java文件名来【新建】";
		String help3 = "一个新文件再覆盖自动生成的代码,否则编译器将无法得到文件名而出错。" + "\n\n";

		String help4 = "加到指定位置。" + "\n\n"
				+ "6.本程序暂时需要JDK1.6版本才可运行,没有1.6版的同学可以用javac/java自行编译\n";
		String help5 = "程序附带的源代码来使用。" + "\n\n" + "说明:" + "\n";

		String help6 = "如果对其中某个部分比较感兴趣,可以联系我一起讨论。" + "\n\n"
				+ ".第一次编写这类软件,没啥经验,";
		String help7 = "所以肯定是BUG满天飞,如果有兴趣让它变得更完善,或者有其他意见或者建议,请及时联系我,谢谢!";
		String help8 = "\n\n" + "QQ: 799078779 " + "\n\n"
				+ "E-mail: 799078779@qq.com" + "\n\n";
		JOptionPane.showMessageDialog(this, help1 + help2 + help3 + help4
				+ help5 + help6 + help7 + help8, "帮助",
				JOptionPane.QUESTION_MESSAGE);
	}

	private void runJava()
	{
		// try
		// {
		// System.out.println("ph+name="+ph.toString()+"\\"+name);
		//				 
		// //访问这个类
		// Class cls=Class.forName(ph.toString()+"\\"+name+".class");
		// //调用main方法
		// Method main=cls.getMethod("main", new Class[] {String[].class});
		//					
		// main.invoke(null, new Object[] {new String[0]});
		// //System.setOut(new PrintStream(jta1.getText()));
		//					
		// }
		// catch(Exception e2)
		// {
		// e2.printStackTrace();
		// }
		if (isBianyi == true)
		{
			if (isOpenOrNew == 2)
			{
				Runtime rt = Runtime.getRuntime();
				try
				{

					String s, cmd;
					cmd = new String("java " + name);// Java的执行命令
					Process p = rt.exec(cmd);// 调用进程去执行命令
					jta1.setText(jta1.getText() + "执行命令:" + cmd + "\n");// 重定向执行结果
					// 重定向错误信息
					BufferedReader err = new BufferedReader(
							new InputStreamReader(p.getErrorStream()));
					while ((s = err.readLine()) != null)
					{
						jta1.setText(jta1.getText() + s + "\n");
					}
					// 重定向输出信息(将输出的信息存放到jta1中显示出来)
					BufferedReader in = new BufferedReader(
							new InputStreamReader(p.getInputStream()));
					while ((s = in.readLine()) != null)
					{
						jta1.setText(jta1.getText() + s + "\n");
					}
				}
				catch (Exception eee)
				{
					eee.printStackTrace();
				}
			}
			if (isOpenOrNew == 1)
			{
				javaName = javaName.substring(0, javaName.length() - 5);
				System.out.println("javaName=" + javaName);
				Runtime rt = Runtime.getRuntime();

				try
				{
					String s, cmd, cm;

					cmd = new String("java " + javaName);// Java的执行命令
					Process p = rt.exec(cmd);// 调用进程去执行命令
					jta1.setText(jta1.getText() + "执行命令:" + cmd + "\n");// 重定向执行结果
					// 重定向错误信息
					BufferedReader err = new BufferedReader(
							new InputStreamReader(p.getErrorStream()));
					while ((s = err.readLine()) != null)
					{
						jta1.setText(jta1.getText() + s + "\n");
					}
					// 重定向输出信息(将输出的信息存放到jta1中显示出来)
					BufferedReader in = new BufferedReader(
							new InputStreamReader(p.getInputStream()));
					while ((s = in.readLine()) != null)
					{
						jta1.setText(jta1.getText() + s + "\n");
					}
				}
				catch (Exception eee)
				{
					eee.printStackTrace();
				}
			}
		}
		else
		{
			showMessage("郑云飞友情提示您:请先编译");
		}
	}

	private void bianyiJava()
	{
		if (isSaveJava == true && isOpenOrNew == 2)
		{
			// System.out.println("path="+path.toString());
			// JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
			// int results = compiler.run(null, null, null,path.toString());
			// jta1.setText((results == 0) ? "郑云飞友情提示您:编译成功\n" :
			// "郑云飞友情提示您:编译失败\n");
			// jta1.setText(jta1.getText() + "执行命令:" + "javac "
			// +name+".java"+"\n");
			Runtime t1 = Runtime.getRuntime();
			String cmd = new String("javac " + fileNameE);
			try
			{
				Process p = t1.exec(cmd);
				isBianyi = true;
				jta1.setText("执行命令:" + cmd + "\n");
				BufferedReader err = new BufferedReader(new InputStreamReader(p
						.getErrorStream()));// 重定向错误信息
				String s = "", totalS = "";
				while ((s = err.readLine()) != null)
				{
					jta1.setText(jta1.getText() + s + "\n");
				}
				// jta1.setText(totalS+"\n");
				// 重定向输出信息
				BufferedReader in = new BufferedReader(new InputStreamReader(p
						.getInputStream()));
				String sin = "", totalSin = "";
				while ((sin = in.readLine()) != null)
				{
					jta1.setText(jta1.getText() + sin + "\n");
				}

			}
			catch (IOException e1)
			{

				e1.printStackTrace();
			}
		}
		else if (isSaveJava == true && isOpenOrNew == 1)
		{
			Runtime t1 = Runtime.getRuntime();
			String cmd = new String("javac " + openName);
			try
			{
				Process p = t1.exec(cmd);
				jta1.setText("执行命令:" + cmd + "\n");
				BufferedReader err = new BufferedReader(new InputStreamReader(p
						.getErrorStream()));// 重定向错误信息
				String s = "", totalS = "";
				while ((s = err.readLine()) != null)
				{
					jta1.setText(jta1.getText() + s + "\n");
				}
				// jta1.setText(totalS+"\n");
				// 重定向输出信息
				BufferedReader in = new BufferedReader(new InputStreamReader(p
						.getInputStream()));
				String sin = "", totalSin = "";
				while ((sin = in.readLine()) != null)
				{
					jta1.setText(jta1.getText() + sin + "\n");
				}

			}
			catch (IOException e1)
			{

				e1.printStackTrace();
			}
		}
		else
		{
			String str = "郑云飞友情提示您:请先保存您编写的程序";
			showMessage(str);
			jta1.setText(str);
		}
	}

	private void saveJava()
	{
		isSaveJava = true;
		String file = "";
		if (isOpenOrNew == 1)
		{
			file = new String(openName);
		}
		else if (isOpenOrNew == 2)
		{
			file = new String(name + ".java");
		}
		File dir = new File(".");
		ph = new String();
		try
		{
			ph = dir.getCanonicalPath();// 返回此抽象路径名的规范路径名字符串。
		}
		catch (IOException ioe)
		{
			ioe.printStackTrace();
		}
		path = new File(ph + "\\" + file);
		int i = 10;
		if (path.exists())
		{
			i = JOptionPane.showConfirmDialog(this, "文件已经存在是否覆盖?");
			// 如果选择是 i=0 否i=1 取消 i=2 点击× i=-1
			System.out.println("i=" + i);
		}
		if (i == JOptionPane.YES_OPTION || i == 10)
		{

			BufferedReader in = new BufferedReader(new StringReader(jta.getText()));
			try
			{
				PrintWriter out = new PrintWriter(file);
				String s;
				while ((s = in.readLine()) != null)
				{
					out.println(s);
				}
				jta1.setText(jta1.getText() + "执行命令:保存文件到当前目录。" + "\n");
				if (out != null)
				{
					out.close();
				}
			}
			catch (IOException ee)
			{
				ee.printStackTrace();
			}
		}
		else if (i == JOptionPane.NO_OPTION)
		{
			jta1.setText(jta1.getText() + "文件未保存。" + "\n");
		}
	}

	private void newJava()
	{
		isOpenOrNew = 2;// 标志是新建的java程序,而不是打开的java程序
		boolean flag = true;
		String head = "/**"
				+ "\n"
				+ " * 项目名称:Java可视化编译器\n"
				+ " * 创作人:郑云飞\n  * 项目大纲:1.Swing,2.IO 3,线程\n * 版本:java 1.0测试版\n*/\n";
		while (flag)
		{
			flag = false;
			fileNameE = JOptionPane.showInputDialog("输入文件名称(例如 abc.java ):");
			if (!(fileNameE.endsWith(".java")))
			{
				showMessage("文件名类型错误,应为 *.java");
				flag = true;
			}
			else
			{
				name = new String(fileNameE
						.substring(0, fileNameE.indexOf(end)));// 获取输入的类名称
				// 自动生成的代码

				jta.setText(head);
				jta.setText(jta.getText() + "public class " + name
						+ "\n{\n\tpublic static void main(String[] args)"
						+ "\n\t{");
				jta
						.setText(jta.getText()
								+ "\t\n\t\t"
								+ "System.out.println(\"欢迎进入java编程世界,您可以在这里畅游java品味人生!\");"
								+ "\n\t}\n}");
			}
		}
	}

	private void saveFile()
	{
		// 文件选择组件
		JFileChooser jfc = new JFileChooser();
		// 设置名字
		jfc.setDialogTitle("请选择保存的路径....");
		// 默认方式
		jfc.showSaveDialog(null);
		// 显示
		jfc.setVisible(true);
		savepath = jfc.getSelectedFile().getAbsolutePath();
		namefile = jfc.getSelectedFile().getParent();
		Writer fr = null;
		BufferedReader br = null;
		BufferedWriter bw = null;
		try
		{
			fr = new FileWriter(savepath);
			bw = new BufferedWriter(fr);
			bw.write(this.jta.getText());
			System.out.println("保存成功");
			if (bw != null)
			{
				bw.close();
			}
			if (br != null)
			{
				br.close();
			}
		}
		catch (Exception e1)
		{
			showMessage("保存失败");
			jta1.setText("保存失败");
		}
	}

	private void openFile()
	{
		isOpenOrNew = 1;// 标志是打开的java程序,而不是新建的java程序
		// 文件选择组件
		JFileChooser jfc = new JFileChooser();
		// 设置名字
		jfc.setDialogTitle("请选择文件....");
		// 默认方式
		jfc.showOpenDialog(null);
		// 显示
		jfc.setVisible(true);
		String filepath = jfc.getSelectedFile().getAbsolutePath();
		openName = jfc.getSelectedFile().getName();// 获取打开的文件名
		javaName = jfc.getSelectedFile().getName();
		BufferedReader br = null;
		FileReader fr = null;
		try
		{
			fr = new FileReader(filepath);
			br = new BufferedReader(fr);// 封装管道流
			String s = "";
			String total = "";
			while ((s = br.readLine()) != null)
			{
				// 将读到的数据存放的jta中
				total += s + "\r\n";
			}
			jta.setText(total);
			if (br != null)
			{
				br.close();
			}
			if (fr != null)
			{
				fr.close();
			}
		}
		catch (Exception e1)
		{
			showMessage("打开失败");
		}
	}

	public static void showMessage(String str)
	{
		JOptionPane.showMessageDialog(null, str, "错误",
				JOptionPane.ERROR_MESSAGE);
	}
}

 

分享到:
评论
10 楼 dechenglee 2012-01-03  
先下下来,看看再说
9 楼 nirvana1988 2011-06-07  
确实不咋规范,也没有相关的文字说明
8 楼 anglestudio 2011-06-07  
在我电脑上竟然连菜单都隐藏了.
7 楼 lgsun592 2011-06-07  
这哪是新手帖啊,都被整成隐藏啦
话说从命名规则,import等等的风格上来说,我不喜欢看
6 楼 sokoo108 2011-06-07  
看import也能看出是awt的撒
5 楼 chunquedong 2011-06-07  
编辑器还是编译器?
4 楼 JE帐号 2011-06-07  
什么情况?
3 楼 freish 2011-06-07  
不怕新手贴啊
2 楼 zhangtsi 2011-06-07  
樓主自戀,鑒定完畢
1 楼 003 2011-06-07  
要放也放一个基本能用的版本上来吧

AWT的东东还是换了吧,标题是Swing,我还以为是纯Swing组件呢,结果在输入区一点右键就发现不是了,后来再回来一看代码果然不是

相关推荐

    node-v10.22.0-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于JAVA的物流管理系统的源码设计与实现.zip

    毕业设计物流管理系统的设计与实现(Java版本) 采用Struts2+hibernate+Oracle10g+Tomcat 涉及车辆管理,配送点管理,运输方式管理,订单管理,员工管理,用户管理,部门管理,权限管理,角色管理等基础管理功能。

    基于VB+access实现的成绩分析统计系统(论文+源代码).zip

    基于VB+access实现的成绩分析统计系统(论文+源代码) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。

    node-v10.14.2-linux-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    ASP+ACCESS网上购物系统设计(源代码+设计说明书+调研报告).zip

    ASP+ACCESS网上购物系统设计(源代码+设计说明书+调研报告).zip

    AO工艺设计计算(全).xls

    污水处理计算书

    node-v7.3.0-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    ASP+ACCESS在线考试系统设计(源代码+设计说明书).zip

    ASP+ACCESS在线考试系统设计(源代码+设计说明书).zip

    node-v11.10.0-linux-ppc64le.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    毕业设计基于知识图谱和循环神经网络的推荐系统python源码+数据集.zip

    毕业设计基于知识图谱和循环神经网络的推荐系统python源码+数据集.zip毕业设计基于知识图谱和循环神经网络的推荐系统python源码+数据集.zip毕业设计基于知识图谱和循环神经网络的推荐系统python源码+数据集.zip毕业设计基于知识图谱和循环神经网络的推荐系统python源码+数据集.zip 毕业设计基于知识图谱和循环神经网络的推荐系统python源码+数据集.zip 毕业设计基于知识图谱和循环神经网络的推荐系统python源码+数据集.zip毕业设计基于知识图谱和循环神经网络的推荐系统python源码+数据集.zip

    2024年老人机行业分析报告.pptx

    行业报告

    基于matlab实现的导线网平差,主要是附和导线平差程序,用于计算各点坐标并评定其精度 .rar

    基于matlab实现的导线网平差,主要是附和导线平差程序,用于计算各点坐标并评定其精度。.rar

    基于VB+access实现的学生学籍管理系统(系统+论文).zip

    基于VB+access实现的学生学籍管理系统(系统+论文) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。

    ASP基于BS的工艺品展示系统的设计与实现(源代码+设计说明书).zip

    ASP基于BS的工艺品展示系统的设计与实现(源代码+设计说明书).zip

    经典SBR设计计算(全).xls

    污水处理计算书

    ASP+ACCESS网上花店毕业设计全套(设计说明书+源代码+说明).zip

    ASP+ACCESS网上花店毕业设计全套(设计说明书+源代码+说明).zip

    污水工艺设计计算书.xlsx

    污水处理计算书

    2024年速冻包子行业分析报告.pptx

    行业报告

    ASP基于WEB教学评估系统设计(源代码+设计说明书).zip

    ASP基于WEB教学评估系统设计(源代码+设计说明书).zip

    JSP教师档案管理系统(源代码+设计说明书).zip

    JSP教师档案管理系统(源代码+设计说明书).zip

Global site tag (gtag.js) - Google Analytics