我正在尝试以下程序:
- 如果我使用 SUDO java 运行一切都很好,但我不想使用 SUDO
- 没有 SUDO 我得到以下错误:
SocketException: Permission Denied (as its PORT 80)
使用码头文档,我可以使用我更改的命令行来工作
jetty-setuid.xm
l -- put user-name 是非root用户start.ini
-- 更改为 EXEC 并etc/jetty-setuid.xml
作为第一个参数传递jetty.xml
-- 端口号为 80
然后我仍然以非 root 用户身份执行 sudo - 就像 -> sudo java -jar start.jar
Jetty 作为非 root 用户在端口 80 上启动。
我想使用 JAVA 程序实现相同的目标。任何帮助/意见表示赞赏。
package my.package;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
public class JettyTest {
public static void main(String[] args) throws Exception
{
Server server = new Server();
System.out.println("Created new server, now going to start");
SelectChannelConnector connector0 = new SelectChannelConnector();
connector0.setPort(80); //on port 80
connector0.setMaxIdleTime(30000);
connector0.setRequestHeaderSize(8192);
server.setConnectors(new Connector[]{ connector0 });
server.setHandler(new MyHandler()); //simple hello world handler
server.start();
System.out.println("started server on port 80");
server.join();
}
}