到目前为止,这是我的代码。
<html>
<head>
<script language="JavaScript">
function java(){
process process = new ProcessBuilder("Pathtomyprogram").start();
}
</script>
</head>
<form name="Test">
<input type="button" value="Test" onClick="java()">
</form>
</body>
</html>
当我进入网络浏览器并单击我创建的按钮并且它无法启动我在主机上指定的程序时,会出现问题。我可能会犯一个完全明显的错误,因为我一直在拼接来自多个来源的代码。所以基本上,如何在我的手机上打开我的网站(在其上托管javascript)上启动一个程序,点击按钮后它会在主机上打开一个程序?
如果这是不可能的,我是一个完整的白痴,请告诉我!
如果有必要知道,这个javascript将在Windows XP PC上的Apache 2.2上托管。
编辑:哇,我刚才在这个问题上真的很蠢。好的,所以我意识到我的问题根本没有形成。以下是如何做到这一点。
我的解决方案是在PHP中找到的,并且非常草率,根本不应该使用,但是这里适用于任何需要做我正在做的事情的人。
好的,就像许多人在下面指出的那样,允许从客户端在服务器上启动程序风险太大了。没有纯粹的方法,但这是一种偷偷摸摸,不切实际的方式。
<?php
function play() {
$myfile = fopen("start.txt", "w") or die("Unable to open file!");
}
?>
这样做是将“w”写入服务器上的“start.txt”文件。还有一个批处理程序(显然不必批处理)在服务器上运行,以查看是否存在“start.txt”。如果是,它会运行我想要的东西,然后删除“start.txt”以便下次重置它。
当然,这是所有感兴趣的人的“batch.bat”代码。
@echo off
:home
if exist start.txt goto next
goto home
:next
rem Code you want to be executed goes here.
cls
del start.txt
goto home
但实际上,除非这是您或您信任的少数朋友会使用的,否则永远不要这样做。我现在更加明智,更了解javascript和网络编程,这一点,即使我认识到,这是一个可怕的修复。谢谢!
答案 0 :(得分:1)
如果这不可能并且我是一个完整的白痴,请告诉我!
出于安全原因,这是不可能的,所以;)...至少它的工作并不像你的问题所描绘的那样简单。
您的代码正在浏览器中运行,该文件将您的文档和包含的javascript放在&#34;沙盒中#34;阻止它访问浏览器之外的任何东西。
从这里的评论和问题得出结论:
exec()
来启动在主机aka服务器上的应用程序。