args []是否可以通过整个jvm生命周期?

时间:2018-01-21 11:20:37

标签: java jvm

可以通过调用以下方法检索Java vm参数:

class Student(models.Model):
    name = models.CharField(max_length=50)
    surname = models.CharField(max_length=50)
    student_ID = models.CharField(unique=True, max_length=14,
                                  validators=[RegexValidator(regex='^.{14}$',
                                                             message='The ID needs to be 14 characters long.')])
    photo = models.ImageField(upload_to='students_images')
    email = models.EmailField()
    phone = models.CharField(max_length=15, )

    def __str__(self):
        return self.name + self.surname

此调用明确排除了主要的args

  

返回传递给Java虚拟机的输入参数,不包含main方法的参数

一旦主要方法存在,可以安全地假设通过命令行提供参数从内存中擦除,或者我们之后可以安全地清理吗? (在此特定示例中,我希望用户提供加密/解密密钥),该密钥应尽可能短地保留在内存中。

1 个答案:

答案 0 :(得分:1)

  

假设通过命令行提供参数是否安全   一旦主要方法存在,就从内存中擦除

肯定不是。

命令行是OS进程的一个属性。无论您启动什么JVM或应用程序,只要进程存在,操作系统就会保留原始命令行。例如。在Linux上,可以通过/proc/PID/cmdline访问。