我想安排使用超级简单的IO(只是打印语句)进行计算机模拟,而不是在浏览器中运行。我可以用java编程,但对Javascript知之甚少。我有一种感觉(纠正我,如果我错了)可能会安排一些HTML / Javascript,以便它可以整齐地包装一个单独的纯Java块 - 无论是在一个文件中,还是在一个更大的文件中文件标有...的区域
**在这里开始JAVA **
**结束JAVA在这里**
...只有知道java的人才能在那里编写java程序并在浏览器中查看它 - 只要IO仅限于简单的打印语句。
这可能吗?它已经完成了吗?
编辑:更多背景......我写了一个现实世界现象的计算机模拟,我希望学者能够玩和修改。学者们比javascript更有可能了解java - 所以我想隐藏所有的javascript东西,让用户只看java。
答案 0 :(得分:1)
有可能安排一些html / javascript,以便它可以整齐地包装一个单独的纯java块
没有。 Java是Javascript,因为汽车是地毯。无论多么好的浏览器都支持Javascript,浏览器都不能保证包含Java运行时。他们可能会,但是支持Flash的机会大致相同(Flash获胜)。它只是一个插件。
除非您将整个Java编译器和解释器包装在javascript中(将它们编译为javascript),否则您无法完全在客户端执行此操作。即使这样,它也会很慢。您可以做什么:
选项1:
applet
或object
标记,引用此JAR,然后服务器将其提供给客户端。这是最简单的方法,但它非常不理想(尤其是客户必须确认的所有安全警告)。你可以这样做:
选项2:
此外:
选项3:
您可以将Java编译为Javascript,但只支持非常有限的Java子集。
一个这样的编译器是Google Web Toolkit的组成部分,旨在从Java编写整个网站。用户不需要在他的机器上安装Java Runtime Environment,但是需要将自己限制为可以有效编译为Javascript的Java子集(如果我没记错的话,你需要划掉java.util的一半) 。
结论:您可以让用户编写Java然后让他观察结果,但Java编译的繁重工作应由服务器完成。如果用户没有Java插件,那么他就不能只编写任何Java代码并期望它运行。此外,您最好知道如何使用Java编写代码,包括类加载和Javasript - > applet communication。