场景:
当有人进入我的网站:www.domain.com/mypage.jsp他会发现一个输入文本框输入他的名字,和一个下载按钮。当用户输入他的名字并点击下载按钮时,他将被重定向到一个链接,在那里他可以下载在windows下工作的可执行文件,当exe被点击时,用户将看到一个hello world消息。
问题:我应该用哪种编程语言编写"Hello World Executable",使我能够轻松地对其源代码进行一些修改,并从JSP网页编译它。
如果您分享关于如何从JSP网页编译一个小的Hello World exe,我需要导入哪些库,以及哪种语言更容易从JSP网页编译的任何示例,将不胜感激。
也许最困难的部分是找到一种具有现有交叉编译器平台的编程语言,它将在您的服务器运行的任何操作系统上编译.exe文件。如果您的服务器运行Windows,这并不难。这里的问题是我们不确定你运行的是哪个操作系统。不用猜测,解决方案似乎以VB的形式存在(无论多么不幸)。您的服务器永远不需要修改源代码。您的代码可能看起来像这样:
Module mainModule
Sub Main()
Console.WriteLine("Hello " & Name & ". Press enter to exit.")
Console.ReadLine()
End Sub
End Module
为了编译它,服务器可以调用Microsoft VB编译器或Mono VB编译器作为shell命令,使用/define:
开关来定义Name。在将其放入命令之前,请确保对名称进行了消毒!确保它不包含任何命令行可能不希望解释的字符,如管道字符、换行符和引号。
Mono命令:vbnc filename.vb /define:Name="Fred" /out:Fred.exe
Microsoft命令:vbc filename.vb /define:Name="Fred" /out:Fred.exe
如果您的服务器碰巧运行Windows,那么您可以调用Microsoft c++编译器来使用C代码实现相同的效果。这个也好不到哪里去。如果成功的话,您可能能够将cl.exe
从Windows环境复制到Linux(或其他非Windows)环境中,并使用WINE运行它。如果是这样的话,我宁愿选择那个选项。您的源代码可能看起来像:
#include <stdio.h>
int main(void) {
puts("Hello " NAME ". Press enter to exit");
getchar();
}
…该命令看起来类似于:wine cl.exe filename.c /DNAME="Fred" /out:Fred.exe
,具有防止恶意用户劫持您的系统所需的相同预防措施。