首页 > 代码库 > Java与C#对比之编译源文件

Java与C#对比之编译源文件

我们知道Java跟C#一样,都是基于虚拟机的环境而得以运行的。Java中的虚拟机叫做JVM(Java Virtual Machine),而C#中叫做CLR(Common Language Runtime)。借助于虚拟机,这两门编程语言就可以实现所谓跨平台的功能。

下面我们做个简单的试验,来回顾一下Java跟C#是如何编译源文件的。

一、Java编译源文件

编译的前提是要安装好JDK(Java Development Kit),如果安装的是JRE(Java Runtime Environment)则不能进行进行编译,只能运行。

装好之后,为了便于操作,我们需要将D:\Program Files\Java\jdk1.7.0_25\bin(看你的安装目录)目录添加到环境变量中,然后就可以在cmd命令窗口中直接使用javac、java等命令了。

以HelloWorld为例:

在D盘建立一个名为Test.java的Java源文件,然后编辑内容为:

public class Test{
    public static void main(String [] args){
	System.out.println("Hello World.");
    }
}

如上所示,执行javac命令会在D盘下生成一个Test.class文件,再执行java Test命令会运行生成好的Test.class文件。

这样就完成了Java源文件的编译。

二、C#编译源文件

与Java类似,C#中执行文件的编译操作,需要csc命令,前提是要安装好.NET Framework。

同样为了便于在cmd命令窗口中直接使用csc命令,我们将所在的目录添加至Windows系统的环境变量中。

我本机的.NET Framework所在的目录为:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319,也可以选择其它版本的.NET Framework。

还是以HelloWorld为例:

我们在D盘建立一个名为TestCSharp.cs的C#源文件,然后编辑内容为:

using System;

namespace Test
{
	public class TestCSharp
	{
		public static void Main(string [] args)
		{
			Console.WriteLine("Hello World.");
		}
	}
}

执行csc TestCSharp.cs命令会在当前目录下生成一个TestCSharp.exe可执行文件,然后直接输入文件名称即可运行。至于为什么是csc,可以这样理解,csc(c sharp compile,C#编译)。

关于C# csc命令的更多选项,可以参考:http://msdn.microsoft.com/zh-cn/library/78f4aasd.aspx


后记:Java跟C#一样,都是面向对象的编译型编程语言。同样的它们都是基于虚拟机的编程语言,理论上都能实现跨平台。通过编译,Java生成的是class字节码文件,而C#生成对应的IL中间语言,其设计思路如出一辙。


Java与C#对比之编译源文件