我正在尝试使用Java生成特定的计算机ID.我已经考虑过像硬盘驱动器序列,或Windows串行密钥,CPU ID或MAC地址这样的东西,但其他计算机也可能有相同的东西.例如,如果某人盗版了Windows 7的副本,他们就可能拥有相同的序列号作为某人..我想知道是否有人可以给我一种方法来生成一个永远不会改变并可使用Java检索的计算机特定ID?
我做了一些研究,发现了一些有用的功能.而且,我在想这样的事情.但如果他们更改了硬件,它将更改计算机ID.有人知道我可以用的东西吗?
public String getComputerID(){
InetAddress ip = InetAddress.getLocalHost();
NetworkInterface network = NetworkInterface.getByInetAddress(ip);
byte[] mac = network.getHardwareAddress();
String sn = getSerialNumber("C");
String cpuId = getMotherboardSN();
return MD5(mac + sn + cpuId);
}
public String MD5(String md5) {
try {
java.security.MessageDigest md = java.security.MessageDigest.getInstance("MD5");
byte[] array = md.digest(md5.getBytes());
StringBuffer sb = new StringBuffer();
for (int i = 0; i < array.length; ++i) {
sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1,3));
}
return sb.toString();
} catch (java.security.NoSuchAlgorithmException e) {
}
return null; …Run Code Online (Sandbox Code Playgroud) 我使用的是最新版本的Eclipse Luna(适用于Java EE开发人员),当我插入一个时<input type='text' placeholder='test123',eclipse会说"未定义的属性名称(占位符).".
为什么会那样?我做错了什么吗?有没有办法解决这个问题?
我正在寻找基于Java的Web应用程序的解决方案来唯一地识别客户端.服务器与客户端在同一网络中,我认为使用MAC地址将是一个很好的解决方案.问题是我不能使用cookie,因为它们可以被客户端删除,我不能使用IP,因为他们可以发布一个新的DHCP租约续订.
所以我想回退到客户端的MAC地址.我知道没有java内置功能来获取MAC地址.是否有可以处理每个操作系统输出的库?(主Windows和Mac),因为我的Java应用程序在两个平台上运行.
或者是否有任何其他建议可以唯一识别网站和HTTP协议中的客户端?(可能是HTML5数据存储或其他)
我正在使用Java 1.7顺便说一句.
我不会强迫用户登录或以其他方式识别自己,我不会为客户端智能手机编写本机应用程序.
我想动态地向Selectize.js中的选项组添加一个选项.API只有
addOption(data)
updateOption(value, data)
addOptionGroup(id, data)
Run Code Online (Sandbox Code Playgroud)
没有太多关于"数据"的帮助.我已经看到了添加选项的示例,但没有提到使用optionGroups
$('#button-addoption').on('click', function() {
control.addOption({
id: 4,
title: 'Something New',
url: 'http://google.com'
});
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在使用IntelliJ,我有一个J2EE项目.我在IDE中设置了一个本地GlassFish服务器,但是如何配置项目以在该本地GlassFish服务器上运行?
我的项目使用Java EE的功能(例如servlet),但IntelliJ说这些库不存在:

我也无法运行我的项目:

如何将本地GlassFish服务器与项目关联,并启用GlassFIsh的库?
我有一个简单的 Java.jar应用程序,它不适用于 Android。我想使用 ProGuard(Eclipse 插件)来混淆它的代码。但是,我找不到将 ProGuard Eclipse 插件用于非 Android Java 项目的任何方法。谁能告诉我我该怎么做?
我不能使用原始的 ProGuard GUI,因为我的应用程序需要太多的混淆配置,以至于每次我想导出我的应用程序时都无法重新输入
谢谢你。
我在使用Java中的嵌套类时遇到了麻烦,有谁知道为什么Java不允许我这样做?
public class A{
private class B{
public B(){
System.out.println("class B");
}
}
public static void main(String[] args){
A a = new A();
B b = new B();
}
}
Run Code Online (Sandbox Code Playgroud) 我想在字符串中附加一个整数.这样做有什么区别:
String str = "Number: " + myInt;
Run Code Online (Sandbox Code Playgroud)
和
String str = "Number: " + Integer.toString(myInt);
Run Code Online (Sandbox Code Playgroud)
换句话说,Integer.toString()如果没有必要,我应该打扰使用这种方法吗?
编辑:我不知道"如何将整数转换为字符串",但"如果我需要使用某种方法,转换".
我有一个<form>,在那个表格中,我有一个<table>. 我尝试在该表单上使用text-align: center和align-items:center,但其中的表格仍然向左对齐(而表格的子元素与该表格内部的中心对齐)。如何将表格与表格内的中心对齐?
我已经听过十亿次关于在 JSP 中使用 Scriptlet(那些类似 php 的<% %>东西)是多么可怕的事情了。
既然 scriptlet 不需要任何用途,并且可以用 JSTL、其他标记库和 EL(表达式语言)替换,为什么它们仍然存在?为什么 Oracle 还没有从 JSP 技术中删除这些 scriptlet?
java ×7
eclipse ×2
html ×2
alignment ×1
android ×1
css ×1
glassfish ×1
integer ×1
jakarta-ee ×1
javascript ×1
jsp ×1
mac-address ×1
obfuscation ×1
placeholder ×1
proguard ×1
scriptlet ×1
selectize.js ×1
string ×1
text-align ×1
uuid ×1