1

假设我有一个捆绑为 jar ( TestExec.jar) 的 Java 应用程序。

当我想跟踪谁调用了我的应用程序时,就会出现问题,我的意思是作为独立应用程序,某些主体通过命令行调用(好像java -jar TextExec.jar),或者只是双击,或者可能是通过计划任务(如在 windows 中)

所以我想......追踪那个......无论是通过命令行还是双击或预定的任务

是否有任何设施或类似的东西:)

4

3 回答 3

4

唯一的判断方法是基于命令行参数或环境。你也许可以间接地解决这个问题,但我建议添加一个特定的参数来告诉你的程序它应该如何表现。

于 2012-09-25T07:53:48.680 回答
2

假设你的 jar 有一个主类,并且你想通过调用它来跟踪谁使用了这个 jar,你可以通过以下方式之一获取用户信息:

  • 从环境中使用user.name(非常不安全)
  • 从底层操作系统获取用户的详细信息(使用 NTSystem/UnixSystem)
  • 使用 Active Directory 或 Kerberos KDC 等目录服务器对用户进行身份验证。

获得用户的详细信息后,您可以将它们记录在某个公共位置。

于 2012-09-25T07:55:34.107 回答
0

您可以创建使用不同参数值调用它的外部文件。例如,创建一个传递 src=bat 的批处理文件,而另一个创建 Windows 服务并使用 src=service 调用它的文件。如果不自己传递一些东西,我认为您无法分辨。

于 2012-09-25T07:57:56.660 回答