0

C++ 和 C# 等语言允许生成线程并为该线程设置用户主体。本质上,可以以不同于创建线程的用户的身份运行新线程。

Java 不支持这一点。

我假设这样的事情可以用 Java 使用 JNI 来完成?如果是这样,任何人都可以提供一个例子。

注意:Windows runas 或 PSTools psexec 等解决方案可以让您从 java 模拟进程,但不安全。我不是在寻找这些类型的解决方案。

4

1 回答 1

0

您将无法在纯 Java 中做到这一点。

通过 JNI 执行此操作将迫使您拥有特定于平台的代码,因此该解决方案将无法移植,并且将依赖特定平台机制来处理用户模拟。

此外,请记住,模拟适用于多个进程(而不是线程)。在 JVM 内部有多个线程,但只有一个进程(=> 一个用户)。要拥有其他用户,您必须生成另一个进程(=> 另一个 JVM)。而且 RPC 并不容易......

于 2013-09-14T20:39:02.053 回答