谁曾打电话给我的Java应用程序?

时间:2012-09-25 07:50:09

标签: java jar

假设我将Java应用程序捆绑为jar(TestExec.jar)。

问题发生在我想跟踪谁调用了我的应用程序时,我的意思是某个机构通过命令行调用的独立应用程序(就好像java -jar TextExec.jar)或者只是双击或者可以通过计划任务(如在Windows中)

所以我想......跟踪它......是通过命令行还是双击或预定接收

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

3 个答案:

答案 0 :(得分:4)

告诉的唯一方法是基于命令行参数或环境。您可以间接地解决这个问题,但我建议添加一个特定的参数,告诉您的程序预期的行为方式。

答案 1 :(得分:2)

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

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

获得用户的详细信息后,您可以将它们记录在一些常见的位置。

答案 2 :(得分:0)

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