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中间语言,其设计思路如出一辙。

时间: 2024-11-05 13:46:17

Java与C#对比之编译源文件的相关文章

WEB开发:Java与Php对比

比较PHP和JSP这两个Web开发技术,在目前的情况是其实是比较PHP和Java的Web开发.以下是我就几个主要方面进行比较: 一. 语言比较 PHP是解释执行的服务器脚本语言,首先php有简单容易上手的特点.语法和c语言比较象,所以学过c语言的程序员可以很快的熟悉php的开发.而java需要先学好java的语法和熟悉一些核心的类库,懂得面向对象的程序设计方法.所以java不如php好学. Java首先要编译成字节码.class文件,然后在java虚拟机上解释执行.Java的Web开发首先最容易

ubuntu下使用java、javac命令行编译工程

一.java和javac命令行 (1)javac命令行 javac.exe用于编译java源文件,生成.class文件 语法:javac  [option]  source 常用的[option]选项: A.-classpath  <路径>(-cp缩写):指定要使用的类路径或要使用的jar包的路径(jar文件.zip文件(里面都是错啦搜索文件)),使用后 会覆盖CLASSPATH的设定 B.-d  <路径> :指定源文件编译后生成.class文件的存放位置 (2)java命令行 j

Java知多少(26)源文件的声明规则

当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则: 一个源文件中只能有一个public类. 一个源文件可以有多个非public类. 源文件的名称应该和public类的类名保持一致.例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java. 如果一个类定义在某个包中,那么package语句应该在源文件的首行. 如果源文件包含import语句,那么应该放在package语句和类定义之间.如果没有package语

如何保护java程序不被反编译

Java是一种 跨平台的.解释型语言 Java 源代码编译中间“字节码”存储于class文件中.Class文件是一种字节码形式的中间代码,该字节码中包括了很多源代码的信息,例如变量名.方法名 等.因此,Java中间代码的反编译就变得非常容易.目前市场上有许多免费的.商用的反编译软件,都能够生成高质量的反编译后的源代码.所以,对开发人员 来说,如何保护Java程序就变成了一个非常重要的挑战.下面我们就结合实例讨论 保护Java程序的基本方法然后对代码混淆问题进行深入研究,最后结合一个实际的应用程序

对比java和python对比

对比java和python 对比java和python 2011年04月18日 1.难易度而言.python远远简单于java. 2.开发速度.Python远优于java 3.运行速度.java远优于标准python,pypy和cython可以追赶java,但是两者都没有成熟到可以做项目的程度. 4.可用资源.java一抓一大把,python很少很少,尤其是中文资源. 5.稳定程度.python3和2不兼容,造成了一定程度上的混乱以及大批类库失效.java由于有企业在背后支持所以稳定的多. 6.

myeclipse 编译源文件 tomcat解释.class文件机制

一 场景: 在svn中下载了项目最新版本,启动myeclipse中的tomcat,发现报错,找不到springMVC配置文件,于是把根目录下的resource文件夹放到了源代码输出目录下.再次启动还有类似找不到文件的错误,于是又修改了build path --configure build paht,把src 和resource两个目录(自己项目自己写的所有源代码)都放到了源码输出source的位置.捎带着改了class输入文件的位置.结果又报错了...错误如下: 严重: Exception s

Java逆向武器库_反编译工具

1.反编译工具之_jd-gui 官网下载地址:http://java-decompiler.github.io/#jd-gui-download 使用: 下载后解压直接使用即可. jd-gui的优势是图形化界面 操作简单,但gui很久没有更新了 存在无法反编译的情况.   2.反编译工具之_CFR 官网下载地址:http://www.benf.org/other/cfr/ 使用: (1)命令行操作: 进入到CFR所在目标 执行命令(需反编译jar:http_operator.jar.反编译后输出

Atitit。D&amp;D drag&amp;drop拖拽功能c#.net java swing的对比与实现总结

Atitit.D&D drag&drop拖拽功能c#.net java swing的对比与实现总结 1. 实现一个D&D操作一般包括三个步骤: 1 2. .net黑头的拖曳机制.必须有DragEnter事件(单独写DragDrop事件是不会具有拖拽功能的) 2 3. ---java黑头的拖曳..必须有DragEnter事件(单独写 Drop事件是不会具有拖拽功能的) 2 4. 代码 3 5. 参考 5 1. 实现一个D&D操作一般包括三个步骤: 首先实现一个拖拽源,这个拖拽

C++ &#39;dynamic_cast&#39; and Java &#39;instanceof&#39; 使用对比

在Java中,如果A是基类,B是A的派生类,那么instanceof可以用来判断一个实例对象是A还是B,相当于一个二元操作符,但与==, >, < 不同的是,它是由字母组成,是Java的保留字.而在C++中却没有这样关键字,不过我们可以使用dynamic_cast来实现同样的功能,请参见下面的代码: Java 'instanceof' // Java 'instanceof' public class A { // ... } public class B extends A { // ...