代码之家  ›  专栏  ›  技术社区  ›  TWA

Java桌面应用程序的限制?

  •  4
  • TWA  · 技术社区  · 16 年前

    我来自C/C++背景,现在做很多C#东西。

    最近,我开始对使用Android SDK进行Java项目感兴趣。

    我知道Java应用程序运行在沙箱中,这会限制它们对系统的访问。

    在桌面/服务器应用程序环境中,哪些内容受到限制?

    4 回复  |  直到 16 年前
        1
  •  9
  •   coobird    16 年前

    Java应用程序和.NET应用程序一样都在沙箱中。它们都在各自的虚拟机上运行,并且对于它们可以做什么有一些限制,但在大多数情况下,它们都可以访问系统,包括通过某些调用访问本机代码。

    你可能在想 Java applets ,它在浏览器中运行,通常位于安全沙箱中,防止访问本地文件等系统资源。(可以通过专门授予某些小程序对系统的访问权限来规避此限制。)

    这里有一节是关于 Security Restrictions The Java Tutorials ,其中包括对小程序的限制列表。

        2
  •  4
  •   Tom Hawtin - tackline    16 年前

    通常,桌面和服务器应用程序在禁用安全性的情况下运行。但是,Java和JVM仍然有一个健壮的类型系统,因此您不能将实例转换为对象创建时没有使用的类型,不能访问释放的内存,也不能运行缓冲区的末尾。

        3
  •  2
  •   Michael Borgwardt    16 年前

    例如:

    • Windows注册表
    • Windows系统托盘
    • 蓝牙
    • 无线局域网配置
        4
  •  0
  •   bashmohandes    16 年前

    我认为你可能会看到的主要限制是 容易地

    此外,如果您有一些遗留的C/C++dll,您仍然可以在C#应用程序中使用它们,而在java中仍然很难做到,特别是在最坏的情况下,当您的本机代码api必须使用指针时,您可以在C#应用程序中使用不安全模式来传递指针并在堆栈上分配固定内存。。。等

    但是如上所述,Java&C#一般来说,他们都有同样的局限性,特别是当你的目标是从独立变成平庸的时候。