我想在Java中制作一个类似机器人大战的小游戏。防止java中的无限循环
的想法是扩展我的类机器人,用自定义规则,你添加到它。然而,我有这样的事情,我想阻止编码器做,就像无限循环一样。
我知道一些编译器会抱怨如果有一个无限循环,在Methode中需要一个返回值。但我不认为所有的编译器都会在这里返回一个错误,所以我在想是否还有另一种方法来检查这个问题呢?
或者一种方法可以使某种方法超时?
更新: 回首这个问题,我发布了近3年半前,我不再做Java编程,但仍是活跃的程序员,并且随着年龄的增长,我了解到它是多么不容易如果没有实施审查周期,则向第三方代码发送警报。 有没有简单的方法来检查代码是否是恶意的(这就是为什么我们有反病毒程序)。
为了做一件我想做的事情,我首先需要控制我正在开发的整个平台,以检查代码原样运行的原因,这个任务几乎是可以实施的或者是时间过长-consuming。
这就是为什么要更安全地做到这一点,我所达到的解决方案是使用脚本语言,将用户限制在您的想法中。
在服务器上托管一个程序,每个人都可以访问添加代码,这不是一个好主意。即使将程序语言作为Java和CIL管理,由于平台没有检查这些细节,只需要花费太多精力就可以完成。
即使有办法在Java中“沙箱”方案,通过使用Policies 和C#都something similar,它绝不会阻止一个熟练的程序员利用或做一些从来没有打算。
我希望这个更新给了他们正在做的事情的警告,因为我注意到这个话题最近被搜索了很多。
编译器对运行时一无所知。是的,编译器会在可以的时候抱怨无法访问的代码。 –
您可以使用静态计数器变量并通过检查计数器值来中断循环。 –
静态计数器会精确地要求计数器从sinde插件计算,但是如果第三人制作插件,并破坏游戏的想法 – Droa