C ++和C#等语言允许生成一个线程并为该线程设置用户主体。实质上,可以将新线程作为与创建线程的用户不同的用户运行。
Java不支持此。
我认为使用JNI可以使用Java完成这样的事情?如果是这样,任何人都可以提供一个例子。
注意:Windows runas或PSTools psexec等解决方案可以让您从java模拟进程,但是不安全。我不是在寻找这些类型的解决方案。
答案 0 :(得分:0)
您将无法在纯Java中执行此操作。
通过JNI进行操作将迫使您拥有特定于平台的代码,因此该解决方案将无法移植,并将依赖特定的平台机制来处理用户模拟。
此外,请记住,模拟适用于多个进程(而不是线程)。在JVM内部有多个线程,但有一个进程(=>一个用户)。要拥有其他用户,您必须生成另一个进程(=>另一个JVM)。 RPC并不容易......