假设我有一个捆绑为 jar ( TestExec.jar
) 的 Java 应用程序。
当我想跟踪谁调用了我的应用程序时,就会出现问题,我的意思是作为独立应用程序,某些主体通过命令行调用(好像java -jar TextExec.jar
),或者只是双击,或者可能是通过计划任务(如在 windows 中)。
所以我想......追踪那个......无论是通过命令行还是双击或预定的任务。
是否有任何设施或类似的东西:)
唯一的判断方法是基于命令行参数或环境。你也许可以间接地解决这个问题,但我建议添加一个特定的参数来告诉你的程序它应该如何表现。
假设你的 jar 有一个主类,并且你想通过调用它来跟踪谁使用了这个 jar,你可以通过以下方式之一获取用户信息:
user.name
(非常不安全)获得用户的详细信息后,您可以将它们记录在某个公共位置。
您可以创建使用不同参数值调用它的外部文件。例如,创建一个传递 src=bat 的批处理文件,而另一个创建 Windows 服务并使用 src=service 调用它的文件。如果不自己传递一些东西,我认为您无法分辨。