网上找的,亲测可行,留着备用。
Step:
1、建立一个任意名称的Java Project
2、在该工程中建立一个名文MyEclipseGen
的Java文件(MyEclipseGen
.java)
3、运行下面的代码,会在控制台出现"
",输入任意一个名字,回车后生成序列号
4、点击 MyEclipse菜单中Window→Preferences→MyEclipse→Subscription
,在右侧点击“Enter Subscription”
5、在弹出框中Subscriber中输入第3步的名字,在Subscription Code中输入第3步生成的序列号
Code:
import
java.io.BufferedReader;
import
java.io.IOException;
import
java.io.InputStreamReader;
public
class
MyEclipseGen {
private
static
final
String LL =
"Decompiling this copyrighted software is a violation of both your license agreement and the Digital Millenium Copyright Act of 1998 (http://www.loc.gov/copyright/legislation/dmca.pdf). Under section 1204 of the DMCA, penalties range up to a $500,000 fine or up to five years imprisonment for a first offense. Think about it; pay for a license, avoid prosecution, and feel better about yourself."
;
public
String getSerial(String userId, String licenseNum) {
java.util.Calendar cal = java.util.Calendar.getInstance();
cal.add(
1
,
3
);
cal.add(
6
, -
1
);
java.text.NumberFormat nf =
new
java.text.DecimalFormat(
"000"
);
licenseNum = nf.format(Integer.valueOf(licenseNum));
String verTime =
new
StringBuilder(
"-"
).append(
new
java.text.SimpleDateFormat(
"yyMMdd"
).format(cal.getTime()))
.append(
"0"
).toString();
String type =
"YE3MP-"
;
String need =
new
StringBuilder(userId.substring(
0
,
1
)).append(type)
.append(
"300"
).append(licenseNum).append(verTime).toString();
String dx =
new
StringBuilder(need).append(LL).append(userId)
.toString();
int
suf =
this
.decode(dx);
String code =
new
StringBuilder(need).append(String.valueOf(suf))
.toString();
return
this
.change(code);
}
private
int
decode(String s) {
int
i;
char
[] ac;
int
j;
int
k;
i =
0
;
ac = s.toCharArray();
j =
0
;
k = ac.length;
while
(j < k) {
i = (
31
* i) + ac[j];
j++;
}
return
Math.abs(i);
}
private
String change(String s) {
byte
[] abyte0;
char
[] ac;
int
i;
int
k;
int
j;
abyte0 = s.getBytes();
ac =
new
char
[s.length()];
i =
0
;
k = abyte0.length;
while
(i < k) {
j = abyte0[i];
if
((j >=
48
) && (j <=
57
)) {
j = (((j -
48
) +
5
) %
10
) +
48
;
}
else
if
((j >=
65
) && (j <=
90
)) {
j = (((j -
65
) +
13
) %
26
) +
65
;
}
else
if
((j >=
97
) && (j <=
122
)) {
j = (((j -
97
) +
13
) %
26
) +
97
;
}
ac[i] = (
char
) j;
i++;
}
return
String.valueOf(ac);
}
public
MyEclipseGen() {
super
();
}
public
static
void
main(String[] args) {
try
{
System.out.println(
"please input register name:"
);
BufferedReader reader =
new
BufferedReader(
new
InputStreamReader(
System.in));
String userId =
null
;
userId = reader.readLine();
MyEclipseGen myeclipsegen =
new
MyEclipseGen();
String res = myeclipsegen.getSerial(userId,
"5"
);
System.out.println(
"Serial:"
+ res);
reader.readLine();
}
catch
(IOException ex) {
}
}
}