如果Java应用程序不在预定义的目录中,如何防止(以编程方式)启动它? [复制]

Posted

技术标签:

【中文标题】如果Java应用程序不在预定义的目录中,如何防止(以编程方式)启动它? [复制]【英文标题】:how to prevent (programmatically) a java application from starting if it's not in a pre-defined directory? [duplicate] 【发布时间】:2011-11-28 23:40:23 【问题描述】:

如果 Java 应用程序不在预定义的目录中,如何(以编程方式)阻止它启动?

例子:

我有 application.jar,我想让它仅在它位于“C:\runnable”目录中时才可运行,否则应用程序将退出。

有什么想法吗?

【问题讨论】:

'我想让它仅在位于 "C:\runnable" 中时才可运行' 所以你希望它只在 Windows 机器上运行?这个非同寻常的(愚蠢的)要求的目的是什么? “有什么想法吗?”抛开你打算用来实现目标的策略,并描述目标。 这只是一个例子。我什至没有尝试提出任何申请,我从不向公众公开我的想法。 “这只是一个例子” 很差,因为它未能传达目标。 “我从不向公众公开我的想法。”(翻白眼。)如果你的想法有任何价值,它会在公开后 24 小时内被窃取,即使没有逆向工程(例如反编译)代码。 “一个可怜的人,因为它未能传达目标” 错了!因为“Radu C”给了我完美的答案。 【参考方案1】:
System.getProperty("user.dir").equals("C:\\runnable")

【讨论】:

【参考方案2】:
 final String classLocation = GetClassLocation.class.getName().replace('.', '/') 
  + ".class";

->http://www.roseindia.net/java/java-get-example/get-class-location.shtml

【讨论】:

【参考方案3】:

也可以试试-

    System.out.println(new File (".").getCanonicalPath()); // Current Path
    System.out.println(System.getProperty("user.dir")); // Path from where java is executed

【讨论】:

【参考方案4】:

如果实际标准是 jar 文件是否在给定位置,则不能依赖系统属性,而必须向 JVM 询问 jar 文件的位置,然后做出相应反应。

有关如何确定给定类的字节码位置的说明,请参阅Determine location of a java class loaded by Matlab。然后为你知道在罐子里的一门课做这件事,然后从那里继续。

【讨论】:

以上是关于如果Java应用程序不在预定义的目录中,如何防止(以编程方式)启动它? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

java web如何防止html,js注入

如何防止重复信息进入mysql数据库?

如何在横向上调整自定义 UITableView 分隔符并防止消失

如何防止单例模式被JAVA反射攻击

如何检查目录是否存在并创建一个新目录,如果它不在Rust中?

如何防止搜索栏在滚动时消失? iOS 斯威夫特