我不熟悉 linux 和将网页连接到服务器。
我正在做一个项目,它需要一个 html 页面来在 Linux 服务器中执行一个 java 文件并在网页中显示输出。
- 我创建了一个在命令行中运行良好的 javafile,并创建了一个 results.txt 文件。
- 我已经创建了一个 shell 脚本,它成功地执行了其中的 javafile。
- 一个 html 页面,我在其中编写了 ajax 以触发 first.php 文件来执行上述 shell 脚本。
当我在 linux 中从命令行执行 php 文件时,一切都成功了,它在 java 和 shell 脚本中显示测试打印注释,它从 java 代码和 shell 代码创建一个文件。
但是当我从浏览器执行时
第 1 期 - 它不会从 shell 脚本创建文件,但会显示测试打印语句
第 2 期 - 它根本不执行 Java 代码,因此不会创建文件或打印语句。
如果我从浏览器执行这些 shell 和 java 代码,你能告诉我是否必须启用或更改设置吗?
我暂时把public_html的权限设为777
来自浏览器的错误:Java HotSpot(TM) 64 位服务器 VM 警告:信息:os::commit_memory(0x00007fcf589ac000, 2555904, 1) 失败; error='Permission denied' (errno=13) # # 内存不足,Java 运行时环境无法继续。 # native 内存分配 (malloc) 未能分配 2555904 字节用于提交保留内存。 # 包含更多信息的错误报告文件保存为:#/tmp/hs_err_pid306.log
最佳答案
如果您使用的是 Centos,selinux 可能会出现一些问题。
禁用 selinux 的命令是来自 linux 命令提示符的“setenforce 0”。
关于在命令行中执行但不在浏览器中执行的 Java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23189678/