当我将 tomcat 作为 Windows 服务启动时,有一些主要命令无法在我的 servlet 中运行。使用 bin/startup.bat 文件运行 tomcat 可以正常工作。
主要区别是什么?如何让 tomcat(作为 Windows 服务)以与启动 bat 相同的权限运行?
例如,仅当我使用启动脚本启动 tomcat 时,运行下面的脚本才会运行。
ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "java HelloWorldToPDF "+code+"");
pb.directory(new File("C:\\Program Files\\Apache Software Foundation\\Tomcat 9.0\\webapps\\stock\\WEB-INF\\classes\\"));
Process process = pb.start();
目前 tomcat9 正在作为 Windows 服务使用本地系统帐户启动。
答案1
我对在 Windows 下以服务形式运行任何内容的理解是,您需要确保对运行该服务的服务帐户拥有正确的权限。就您而言,您需要确保本地系统帐户有权访问“主要命令”。