我可以让java程序只在我的电脑上运行吗?

时间:2015-11-26 09:54:34

标签: java javafx

我需要制作一个只能在我的电脑上运行的程序。没有人应该能够复制它并在他们的计算机上运行它。 java中有没有办法实现这个目标?

3 个答案:

答案 0 :(得分:0)

你可以尝试,但你不能想出一个万无一失的方法来阻止我运行它。如果有足够的时间,您可以删除任何安全检查和模糊处理,因此阻止它运行的唯一方法就是不分发它。

当然,我(例如)甚至不太可能会试图破解你的程序,因为我几乎肯定会浪费我的时间。

答案 1 :(得分:0)

假设您要在计算机上安装网络适配器(如果可以连接到互联网,则可以使用它),并且:

  • 你不会改变它
  • 或者您在更改程序时调整程序

您可以在启动程序时测试:

  • 运行程序的计算机有MAC地址(MAC地址取决于您的网络适配器)
  • 并且加载的MAC地址等于您的MAC地址(您在程序中以理想方式在属性文件中写入)

你得到这样的MAC地址:

InetAddress localhost;
try
{
    localhost = InetAddress.getLocalHost();
    byte[] macAddress = NetworkInterface.getByInetAddress(localhost).getHardwareAddress();
}
catch (UnknownHostException e)
{
    e.printStackTrace();
}
catch (SocketException e)
{
    e.printStackTrace();
}

但这有点耗费时间。

答案 2 :(得分:0)

根据您的说法,您似乎不希望它仅在一台计算机上运行,​​而是您似乎希望成为唯一能够运行它的人。

在这种情况下,您可以做的是加密应用程序。

您可以根据需要创建应用程序,使用(强)密码对其进行加密,然后将其包装到uncipher +启动器应用程序中。然后删除原始应用程序。

实现它的一种好方法需要先进的技术,如加密和动态类加载(以避免在磁盘上留下痕迹),而且我甚至都没有谈论建筑系统。