java的要在jre下才能运行的,其实就是java虚拟机,是属于操作系统上面的另一个系统,没有jre java程序是没有办法编译和执行的。C和VB则是在操作系统上的一个开发平台而已。简单看就是java是 java- >IDE开发工具- >java虚拟机- >操作系统;C和VB是C/VB- >IDE开发工具- >操作系统。java编译之后是.class的自解码文件,打包以后是.jar的文件,在windows里直接双击.jar文件和直接双击.exe效果是一样的,不过如果你编写的程序没有返回值,那对不起,程序不是一闪而过就是没有反应。
面向对象相对于面向结构的优势在于分析问题和处理问题的方式不一样,很多书里都会有,太长就不做陈述了,有兴趣自己搜索下。java的优势在于,跨平台性,同一个程序几乎不需要任何修改就可以在linux或是windows操作系统间移植,这一点是其他语言不能比拟的。其次,java编译完以后生成的自解码文件可以直接执行,这样就不像其他面向对象一样需要执行一次解释一次,所以一旦程序被编译那执行速度是很快的(还是没有C快,因为有java虚拟机),所以在做网络编程的时候java的优势是显而易见的,所以java做的桌面程序并不是很突出,在web上的成就却是其他语言不能比拟的(微软出了个.net和java虚拟机原理差不多)。而桌面编程主要还是C++的,C语言因为它接近硬件又便于学习和使用的特性往往用来编写操作系统。
Java就是不能生成EXE的因为她是生成class文件的 这样就可以一次编译跨平台试用了。EXE的只能在windows下面才能被识别。 至于你说的jar的不能双击运行我就不清楚为什么了
jar是可以做成双击运行的
简单来说,是因为java是跨平台的。
有第三方工具……