这样无疑让 Java 变得更慢,更尴尬可能等今后硬件速度快的时候可以考虑吧单硬件速度永远无法满足软件需求……

解决方案 »

  1.   

    楼主很有想象力。
    对于我们程序员来说,System.getProperty("os.name")可以得到OS的名称;System.getProperty("os.version")可以得到OS的版本。
      

  2.   

    主  题:  虚拟机能否自动判断操作系统的类型? 
    作  者:  iedge (潜心钻研中)  
    等  级:    
    信 誉 值:  100 
    所属论坛:  Java J2SE / 基础类 
    问题点数:  20 
    回复次数:  5 
    发表时间:  2004-04-21 10:00:12 
       
     
       
    有没有跨平台的虚拟机?也就是说让同一个虚拟机可以在不同的操作系统上运行,使用户不用考虑他使用的是那种操作系统,只要安装同一个虚拟机就能轻松搞定。而虚拟机要做的只是去判断自己所在的操作系统的类型,让后使用不同的解释方法。
      
    =====================================================================很简单,  把所有平台上的JVM打成一个包,如果是windows就只运行windowsJVM , 如果是LINUX就只运行LINUX JVM 。很简单的。   
      

  3.   

    操作系统能不能跨硬件平台,例如我的操作系统不但想在intel 的cpu上运行,还想在sun的和苹果的cpu运行?  windows就可以跨许多cpu平台,采用的方法和上面的一样
      

  4.   

    回复人: onefox(一品狐) ( ) 信誉:98  2004-04-22 12:57:00  得分:0 
     
     
      那么……在判断所在系统属于什么系统的时候必须有一个小程序运行这个程序必须是事先决定的,所以你的想法其实也不能实现也没有意义
      
    =====================================================你真的错了
      

  5.   

    把电脑硬件看成一个系统,看LINUX是怎样跨不同的硬件平台的(大型机,小型机,个人电脑)。我的JVM就学LINUX跨硬件平台一样跨软件平台。
      

  6.   

    回复人: game0ver12345(sfsfdsfdsdfsf) ( ) 信誉:100  2004-04-22 23:48:00  得分:0 
     
     
      把电脑硬件看成一个系统,看LINUX是怎样跨不同的硬件平台的(大型机,小型机,个人电脑)。我的JVM就学LINUX跨硬件平台一样跨软件平台。======================================================补充:我就把硬件系统看成软件系统,一定行。 
      

  7.   

    java的跨平台就是以JVM不跨平台实现的
      

  8.   

    请问谁知道 如何设置java虚拟机的内存大小!
    能用代码实现?》???
    要固定不变的
      

  9.   

    回复人: chenshaizi(陈绍彬) ( ) 信誉:100  2004-04-23 14:05:00  得分:0 
     
     
      java的跨平台就是以JVM不跨平台实现的
     
     
    ================================================全错,"java的跨平台就是以JVM不跨平台实现的",两者完全无关VC能跨各种硬平台 ,WINDWOS也能跨各种硬件平台。 
      

  10.   

    回复人: onefox(一品狐) ( ) 信誉:98  2004-04-23 13:54:00  得分:0 
     
     
      “我就把硬件系统看成软件系统”请问:苹果机 与 PC机 在硬件本质上有没有什么区别?为什么软件不能兼容呢? 系统不一样嘛
     
     
    ===================================================照你这么说,Linux 和Windows 有什么本质的区别?你说完我再说。
      

  11.   

    采用虚拟机的目的就是要在不同操作系统上运行程序,因为操作系统的不同就导致底层汇编命令的不同,所以必然导致不同平台的虚拟机实现也不同,要虚拟机做成跨平台的,其实就是把各个平台的虚拟机捆绑在一起,在启动时判断是那个平台的,然后在执行那个平台的虚拟机代码,这样本质没有变,但大大加大了代码量,减低了虚拟机的运行效率。根本就是得不偿失。
      上面有人说linux就是跨不同平台的,这是跨硬件平台的事,使操作系统的责任,不是虚拟机的责任,其实任何操作系统都可以做成跨不同平台的,只要改变底层汇编码实现就是了。虚拟机是建筑在操作系统之上的东西,两者最好不要混为一谈。
      

  12.   

    to: game0ver12345(sfsfdsfdsdfsf)看到没有? 楼上的话给你的 ↑下次拿镜子照一下自己再出来丢人业不晚!
      

  13.   

    回复人: onefox(一品狐) ( ) 信誉:98  2004-04-23 17:59:00  得分:0 
     
     
      “我就把硬件系统看成软件系统”  给你,砍去吧  BC
     
     
    =====================================================假设我说"我就把硬件系统看成软件系统"就等于“系统平台 = 硬件平台”
    那么我说"我就把1看成浮点数"就等于"1=浮点数"
    那么我说"我就把2看成浮点数"就等于"2=浮点数"因为"1=浮点数"和"2=浮点数" ,所以"1=2"又因为"1=2"显然是错误的,所以假设"我就把硬件系统看成软件系统"就等于“系统平台 = 硬件平台” 显然是错误的。
      

  14.   

    我经常说太浮躁的人学不好JAVA , 真的,你太浮躁了,所以学JAVA你很有可能学不好。一家之言,勿怪。^-^
      

  15.   

    回复人: JavaVsNet(JavaVsNet) ( ) 信誉:100  2004-04-23 18:52:00  得分:0 
     
     
      采用虚拟机的目的就是要在不同操作系统上运行程序,因为操作系统的不同就导致底层汇编命令的不同,所以必然导致不同平台的虚拟机实现也不同,要虚拟机做成跨平台的,其实就是把各个平台的虚拟机捆绑在一起,在启动时判断是那个平台的,然后在执行那个平台的虚拟机代码,这样本质没有变,但大大加大了代码量,减低了虚拟机的运行效率。根本就是得不偿失。
    =======================================================很同意,我也是这么想。我从来没有说应该  "要虚拟机做成跨平台的"
    我只是说技术上可以做到"要虚拟机做成跨平台的"
      

  16.   

    回复人: onefox(一品狐) ( ) 信誉:98  2004-04-23 20:51:00  得分:0 
     
     
      你自己编得圆嘛?  漏洞百出,或者你的语言(指中文)理解能力有障碍
      
     
    Top 
     
    ======================================我那里有漏洞你可以说,你说出来大家才知道你得对不对,前面你说我"我就把硬件系统看成软件系统"就等于“系统平台 = 硬件平台” 就说错了。
      

  17.   

    靠,前面那位仁兄说的,通过一段小程序来识别操作系统,然后才运行相应版本特性的Java虚拟机,(也许可以把这原来面对不同操作系统的虚拟机版本整合为一体)。这算是勉强垮平台吧然而,想前面某兄台说的,首先应让那 一段小程序 能运行起来才行吧
    本质上不同操作系统的程序接口是不同的,就像exe可执行程序不能直接在linux上跑一样。当然,也许有些高手能通过某特殊方法(即不同操作系统的公共接口)来达到这目的(好象利用:不同操作系统都会自动播放光盘一样,)。在说,所谓“VC能跨平台”,靠,VC不是只跑在windows上的吗?!
      

  18.   

    楼上的说得有理,不过现实当中已经有这样的例子了阿,好像jb的安装程序就可以跨windows和linux,其原理我没有研究过,不过应该要依靠操作系统一些共有的特性吧
      

  19.   

    自动播放光盘这样的东西了不起算是智能安装吧,(即选择不同版本的安装文件进行安装配置)。真正的跨平台(此处指跨操作系统)是不是应该是从唯一版本(不区分linux,windows什么的)的虚拟机内核中完成任务呢
    像前面一老大说的,以现在的硬件,可能这样的虚拟机只会让java的速度更难堪,呵呵。
    如果是指跨一般的软件平台,我不知道这有什么好跨的,呵呵。
      

  20.   

    在说,所谓“VC能跨平台”,靠,VC不是只跑在windows上的吗?!====================================================="VC能跨各种硬平台 ,WINDWOS也能跨各种硬件平台。" (这句是我写的,漏了一个'件'字)应该是:
    "VC能跨各种硬件平台 ,WINDWOS也能跨各种硬件平台。""VC能跨各种硬件平台 ,WINDWOS也能跨各种硬件平台。" 我想表达的意思:因为WINDWOS能跨各种硬件平台 ,所以VC也随着windows跨各种硬件平台而可以在不同的硬件系统上运行.
    如果因为这句话漏了"件"字而令大家理解错误,以为我说“VC能跨平台”,"我深感抱歉。
      

  21.   

    然而,想前面某兄台说的,首先应让那 一段小程序 能运行起来才行吧
    本质上不同操作系统的程序接口是不同的,就像exe可执行程序不能直接在linux上跑一样。==============================================小case , 下面高手先说,我过几篇再来。
      

  22.   

    回复人: JavaVsNet(JavaVsNet) ( ) 信誉:100  2004-04-23 22:04:00  得分:0 
     
     
      楼上的说得有理,不过现实当中已经有这样的例子了阿,好像jb的安装程序就可以跨windows和linux,其原理我没有研究过,不过应该要依靠操作系统一些共有的特性吧
      
    ==============================jb 后期版本是100%纯JAVA
      

  23.   

    其实我知道他想说什么,不就是以硬件为基础脱离操作系统实现嘛所以我才让他搞清楚我们讨论的是 系统平台就算他的理论可以,则“虚拟机”已不再是“虚拟机”,是半个操作系统因为它不能利用当前系统的的软件资源,得靠自己从新实现不现实,Java 也不会再是 Java 变成另一个 C++Java 程序也不可能运行在 Linux 上(当然 Windows 也不行)只能在它们的半个系统上运行!(还记得 Java 为什么成功嘛?)再跟这疯子争会被鄙视。走了!
      

  24.   

    哦,对了。 windows 里的汇编也是迎合 windows 汇编接口的,你不会不知道吧
      

  25.   

    应该可以吧,好象是System.getProperty()可以返回很多系统信息,包括操作系统的名称.
      

  26.   

    回复人: onefox(一品狐) ( ) 信誉:98 =============================不要以为我就不敢操你,我只不过不想而已。楼主问:"有没有跨平台的虚拟机"?我回答:
    “把所有平台上的JVM打成一个包,如果是windows就只运行windowsJVM , 如果是LINUX就只运行LINUX JVM 。很简单的。”我的回答就想说在技术上是可以的而且也是简单的,我从来没有说过支持“跨平台的虚拟机”,而且我这句话的潜在意思也已经表明:
    “平台的虚拟机”技术实现是这么简单,但也没有出现,不用想都知道市场根本没有这个需求。基本上我所有的回答都没有离开这个中心,onefox(一品狐) 你他妈的有哪次攻击是有道理的。你他妈的一次次毫无道理的侮辱我,我不操你妈我就不是男人。如果这里还有人说我做错的,请指教。
      

  27.   

    厉害,这个贴的重点在 一品狐和 game0ver12345(sfsfdsfdsdfsf) 间的争论。
    大家怎么这么爱挑别人的刺??
    错的,请指正,别老带一种高人一等或是鹤立鸡群的态度过来。我觉得 一品狐 是不是有点穷追猛打的意思?搭起好几层楼和 game0ver12345(sfsfdsfdsdfsf) 叫劲?有必要吗??还好后者忍住了。:)权当闲聊之语,各位继续