首先到
http://www.aptana.com/download/index.php
选择eclipse plugin
输入用户名,密码,邮箱.
点download
会出现一个链接
点击
到 http://update.aptana.com/update/3.2/这个页面
点击 Download Plugin Update Site
下载下来的安装包
别按官方说的安装
直接解压缩用link方式安装
这时候你的邮箱会收到一个测试license
然后重新打开eclipse
注册aptana
用户名是你收到邮件内容"For your reference, your license locator ID is:"后面的
key就是邮件中"License key:"后面那一串
这时候你就会发现你的aptana就是注册版了
第一阶段完成
然后点击install...
在线升级安装professional的插件.
会让你输入用户名密码
这个用户名密码就是你在下载页面输入的那个,
下载的时候会提示你安装目录,随便选一个目录.
安装以后重新打开eclipse就会发现又不能用了.
编译并替换
你刚刚选的目录/eclipse/plugins/com.aptana.ide.professional_1.0.10.200711191212/com/aptana/ide/professional下面的class.注意尤其要注意,上面的代码只能在eclipse插件项目里面才能编译.
然后再到aptana设置里面注册一次.key还是之前邮件里面的测试key
但是用户名变成了之前下载页面里面你填的那个用户名.
点击validate
成功的话,会显示绿色
valid key
License Type: Professional
Registered to: e@e.com
Expires on: 2088年8月8日 XXXXXXXXX
其实感觉升级的东西对我没什么用,我也就是用他写写js
而且第二步比较复杂
建议除非升级以后的功能对你非常重要,否则到第一阶段就可以了.
http://www.aptana.com/download/index.php
选择eclipse plugin
输入用户名,密码,邮箱.
点download
会出现一个链接
点击
到 http://update.aptana.com/update/3.2/这个页面
点击 Download Plugin Update Site
下载下来的安装包
别按官方说的安装
直接解压缩用link方式安装
这时候你的邮箱会收到一个测试license
package
com.aptana.ide.core.licensing;
import java.math.BigInteger;
import java.util.Calendar;
import java.util.TimeZone;
import java.util.zip.CRC32;
public final class ClientKey {
private static class Decrypt {
private BigInteger modulus;
private BigInteger exponent;
public String decrypt(String encrypted) {
long crc32Value;
byte bytes[];
CRC32 crc32;
/* 289 */ if (encrypted == null ) {
/* 291 */ encrypted = "" ;
} else {
/* 295 */ encrypted = ClientKey.trimEncryptedLicense(encrypted);
}
/* 297 */ BigInteger big = new BigInteger(encrypted);
/* 298 */ BigInteger decrypted = big.modPow(exponent, modulus);
/* 300 */ crc32Value = ( long ) decrypted.intValue() & 0xffffffffL ;
/* 301 */ decrypted = decrypted.shiftRight( 32 );
/* 302 */ bytes = decrypted.toByteArray();
/* 303 */ crc32 = new CRC32();
/* 304 */ crc32.update(bytes);
/* 305 */ return new String(bytes);
}
Decrypt(String exponent, String modulus) {
/* 275 */ this .modulus = new BigInteger(modulus);
/* 276 */ this .exponent = new BigInteger(exponent);
}
}
public static final String BEGIN_LICENSE_MARKER = " --begin-aptana-license-- " ;
public static final String END_LICENSE_MARKER = " --end-aptana-license-- " ;
private static final TimeZone GMT = TimeZone.getTimeZone( " GMT " );
private static final String EMAILS_NON_MATCHING = " EMAILS_NON_MATCHING " ;
private static final int PRO = 0 ;
private static final int TRIAL = 1 ;
private String email;
private long expiration;
private int type;
private ClientKey( int type, String email, long expiration) {
/* 77 */ this .type = 0 ;
/* 78 */ this .email = " e@e.com " ;
/* 79 */ this .expiration = 999999999 ;
}
public static ClientKey decrypt(String encrypted, String email) {
/* 93 */ String modulus = " 115801190261221214754334668902722425936509505416457970789287297728816388753627896293249501578830570324705253515546383166989625001335561947096747210280001245977114030627247212292377290543869343996595819188362915644707269064020812435233012510929338706599216007185654748959001143012936618501934698642942289379979 " ;
/* 94 */ String exponent = " 65537 " ;
/* 100 */ if (encrypted != null ) {
/* 102 */ encrypted = encrypted.trim();
}
/* 104 */ Decrypt decrypter = new Decrypt(exponent, modulus);
/* 105 */ return decrypt(decrypter, encrypted, email);
}
private static ClientKey decrypt(Decrypt decrypter, String encrypted,
String email) {
/* 110 */ String value = decrypter.decrypt(encrypted);
/* 111 */ if (value == null ) {
/* 113 */ return new ClientKey( 1 , null , 0L );
}
/* 115 */ String values[] = value.split( " ; " );
/* 116 */ int type = 1 ;
/* 117 */ String genedEmail = null ;
/* 118 */ long expiration = 0L ;
/* 119 */ if (values.length == 3 ) {
/* 121 */ if ( " p " .equals(values[ 0 ].toLowerCase())) {
/* 123 */ type = 0 ;
}
/* 125 */ genedEmail = values[ 1 ];
/* 127 */ if (genedEmail != null ) {
/* 129 */ if ( ! genedEmail.equalsIgnoreCase(email)) {
/* 131 */ genedEmail = " EMAILS_NON_MATCHING " ;
}
} else {
/* 136 */ genedEmail = null ;
}
/* 140 */ try {
/* 140 */ expiration = Long.parseLong(values[ 2 ]);
}
/* 142 */ catch (Exception _ex) {
/* 144 */ expiration = 0L ;
}
}
/* 147 */ return new ClientKey(type, genedEmail, expiration);
}
public boolean isCloseToExpiring() {
return false ;
}
public boolean isValid() {
/* 169 */ return true ;
}
public boolean isCloseToMatching() {
/* 179 */ return true ;
}
public boolean isExpired() {
/* 190 */ return false ;
}
public String getEmail() {
/* 200 */ return " e@e.com " ;
}
public Calendar getExpiration() {
/* 210 */ Calendar expirationCal = Calendar.getInstance();
expirationCal.set( 2088 , 7 , 8 );
/* 212 */ return expirationCal;
}
public boolean isTrial() {
/* 222 */ return false ;
}
public boolean isPro() {
/* 232 */ return true ;
}
public boolean shouldProPluginsRun() {
return true ;
}
public static String trimEncryptedLicense(String encrypted) {
/* 257 */ String newEncrypted = encrypted;
/* 258 */ newEncrypted = newEncrypted.trim();
/* 259 */ newEncrypted = newEncrypted.replaceAll(
" --begin-aptana-license-- " , "" );
/* 260 */ newEncrypted = newEncrypted.replaceAll(
" --end-aptana-license-- " , "" );
/* 261 */ newEncrypted = newEncrypted.replaceAll( " //s+ " , "" );
/* 262 */ return newEncrypted;
}
}
编译上面的源文件替换com.aptana.ide.core_1.0.1.004323.jar里面的class
import java.math.BigInteger;
import java.util.Calendar;
import java.util.TimeZone;
import java.util.zip.CRC32;
public final class ClientKey {
private static class Decrypt {
private BigInteger modulus;
private BigInteger exponent;
public String decrypt(String encrypted) {
long crc32Value;
byte bytes[];
CRC32 crc32;
/* 289 */ if (encrypted == null ) {
/* 291 */ encrypted = "" ;
} else {
/* 295 */ encrypted = ClientKey.trimEncryptedLicense(encrypted);
}
/* 297 */ BigInteger big = new BigInteger(encrypted);
/* 298 */ BigInteger decrypted = big.modPow(exponent, modulus);
/* 300 */ crc32Value = ( long ) decrypted.intValue() & 0xffffffffL ;
/* 301 */ decrypted = decrypted.shiftRight( 32 );
/* 302 */ bytes = decrypted.toByteArray();
/* 303 */ crc32 = new CRC32();
/* 304 */ crc32.update(bytes);
/* 305 */ return new String(bytes);
}
Decrypt(String exponent, String modulus) {
/* 275 */ this .modulus = new BigInteger(modulus);
/* 276 */ this .exponent = new BigInteger(exponent);
}
}
public static final String BEGIN_LICENSE_MARKER = " --begin-aptana-license-- " ;
public static final String END_LICENSE_MARKER = " --end-aptana-license-- " ;
private static final TimeZone GMT = TimeZone.getTimeZone( " GMT " );
private static final String EMAILS_NON_MATCHING = " EMAILS_NON_MATCHING " ;
private static final int PRO = 0 ;
private static final int TRIAL = 1 ;
private String email;
private long expiration;
private int type;
private ClientKey( int type, String email, long expiration) {
/* 77 */ this .type = 0 ;
/* 78 */ this .email = " e@e.com " ;
/* 79 */ this .expiration = 999999999 ;
}
public static ClientKey decrypt(String encrypted, String email) {
/* 93 */ String modulus = " 115801190261221214754334668902722425936509505416457970789287297728816388753627896293249501578830570324705253515546383166989625001335561947096747210280001245977114030627247212292377290543869343996595819188362915644707269064020812435233012510929338706599216007185654748959001143012936618501934698642942289379979 " ;
/* 94 */ String exponent = " 65537 " ;
/* 100 */ if (encrypted != null ) {
/* 102 */ encrypted = encrypted.trim();
}
/* 104 */ Decrypt decrypter = new Decrypt(exponent, modulus);
/* 105 */ return decrypt(decrypter, encrypted, email);
}
private static ClientKey decrypt(Decrypt decrypter, String encrypted,
String email) {
/* 110 */ String value = decrypter.decrypt(encrypted);
/* 111 */ if (value == null ) {
/* 113 */ return new ClientKey( 1 , null , 0L );
}
/* 115 */ String values[] = value.split( " ; " );
/* 116 */ int type = 1 ;
/* 117 */ String genedEmail = null ;
/* 118 */ long expiration = 0L ;
/* 119 */ if (values.length == 3 ) {
/* 121 */ if ( " p " .equals(values[ 0 ].toLowerCase())) {
/* 123 */ type = 0 ;
}
/* 125 */ genedEmail = values[ 1 ];
/* 127 */ if (genedEmail != null ) {
/* 129 */ if ( ! genedEmail.equalsIgnoreCase(email)) {
/* 131 */ genedEmail = " EMAILS_NON_MATCHING " ;
}
} else {
/* 136 */ genedEmail = null ;
}
/* 140 */ try {
/* 140 */ expiration = Long.parseLong(values[ 2 ]);
}
/* 142 */ catch (Exception _ex) {
/* 144 */ expiration = 0L ;
}
}
/* 147 */ return new ClientKey(type, genedEmail, expiration);
}
public boolean isCloseToExpiring() {
return false ;
}
public boolean isValid() {
/* 169 */ return true ;
}
public boolean isCloseToMatching() {
/* 179 */ return true ;
}
public boolean isExpired() {
/* 190 */ return false ;
}
public String getEmail() {
/* 200 */ return " e@e.com " ;
}
public Calendar getExpiration() {
/* 210 */ Calendar expirationCal = Calendar.getInstance();
expirationCal.set( 2088 , 7 , 8 );
/* 212 */ return expirationCal;
}
public boolean isTrial() {
/* 222 */ return false ;
}
public boolean isPro() {
/* 232 */ return true ;
}
public boolean shouldProPluginsRun() {
return true ;
}
public static String trimEncryptedLicense(String encrypted) {
/* 257 */ String newEncrypted = encrypted;
/* 258 */ newEncrypted = newEncrypted.trim();
/* 259 */ newEncrypted = newEncrypted.replaceAll(
" --begin-aptana-license-- " , "" );
/* 260 */ newEncrypted = newEncrypted.replaceAll(
" --end-aptana-license-- " , "" );
/* 261 */ newEncrypted = newEncrypted.replaceAll( " //s+ " , "" );
/* 262 */ return newEncrypted;
}
}
然后重新打开eclipse
注册aptana
用户名是你收到邮件内容"For your reference, your license locator ID is:"后面的
key就是邮件中"License key:"后面那一串
这时候你就会发现你的aptana就是注册版了
第一阶段完成
然后点击install...
在线升级安装professional的插件.
会让你输入用户名密码
这个用户名密码就是你在下载页面输入的那个,
下载的时候会提示你安装目录,随便选一个目录.
安装以后重新打开eclipse就会发现又不能用了.
package
com.aptana.ide.professional;
import java.math.BigInteger;
import java.util.Calendar;
import java.util.Hashtable;
import java.util.TimeZone;
import java.util.zip.CRC32;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
import com.aptana.ide.core.ui.CoreUIUtils;
import com.aptana.ide.core.ui.preferences.ApplicationPreferences;
public class Activator extends AbstractUIPlugin {
static final class ClientKey {
static class Decrypt {
private BigInteger modulus;
private BigInteger exponent;
public String decrypt(String encrypted) {
long crc32Value;
byte bytes[];
CRC32 crc32;
/* 276 */ if (encrypted == null ) {
/* 278 */ encrypted = "" ;
} else {
/* 282 */ encrypted = ClientKey
.trimEncryptedLicense(encrypted);
}
/* 284 */ BigInteger big = new BigInteger(encrypted);
/* 285 */ BigInteger decrypted = big.modPow(exponent, modulus);
/* 287 */ crc32Value = ( long ) decrypted.intValue() & 0xffffffffL ;
/* 288 */ decrypted = decrypted.shiftRight( 32 );
/* 289 */ bytes = decrypted.toByteArray();
/* 290 */ crc32 = new CRC32();
/* 291 */ crc32.update(bytes);
/* 292 */ label0: {
/* 292 */ if (crc32Value == crc32.getValue()) {
/* 294 */ return new String(bytes);
}
/* 297 */ break label0;
}
/* 300 */ return null ;
}
Decrypt(String exponent, String modulus) {
/* 262 */ this .modulus = new BigInteger(modulus);
/* 263 */ this .exponent = new BigInteger(exponent);
}
}
public static final String BEGIN_LICENSE_MARKER = " --begin-aptana-license-- " ;
public static final String END_LICENSE_MARKER = " --end-aptana-license-- " ;
private final TimeZone GMT = TimeZone.getTimeZone( " GMT " );
private static final String EMAILS_NON_MATCHING = " EMAILS_NON_MATCHING " ;
private static final int PRO = 0 ;
private static final int TRIAL = 1 ;
private String email;
private long expiration;
private int type;
public static ClientKey decrypt(String encrypted, String email) {
/* 84 */ String modulus = " 115801190261221214754334668902722425936509505416457970789287297728816388753627896293249501578830570324705253515546383166989625001335561947096747210280001245977114030627247212292377290543869343996595819188362915644707269064020812435233012510929338706599216007185654748959001143012936618501934698642942289379979 " ;
/* 85 */ String exponent = " 65537 " ;
/* 87 */ if (encrypted != null ) {
/* 89 */ encrypted = encrypted.trim();
}
/* 91 */ Decrypt decrypter = new Decrypt(exponent, modulus);
/* 92 */ return decrypt(decrypter, encrypted, email);
}
private static ClientKey decrypt(Decrypt decrypter, String encrypted,
String email) {
/* 97 */ String value = decrypter.decrypt(encrypted);
/* 98 */ if (value == null ) {
/* 100 */ return new ClientKey( 1 , null , 0L );
}
/* 102 */ String values[] = value.split( " ; " );
/* 103 */ int type = 1 ;
/* 104 */ String genedEmail = null ;
/* 105 */ long expiration = 99999999999999L ;
/* 134 */ return new ClientKey(type, genedEmail, expiration);
}
public boolean isCloseToExpiring() {
return false ;
}
public boolean isValid() {
return true ;
}
public boolean isCloseToMatching() {
/* 166 */ return true ;
}
public boolean isExpired() {
/* 176 */ Calendar currentCalendar = Calendar.getInstance(GMT);
/* 177 */ return currentCalendar.after(getExpiration());
}
public String getEmail() {
/* 187 */ return " e@e.com " ;
}
public Calendar getExpiration() {
/* 197 *//* 210 */ Calendar expirationCal = Calendar.getInstance();
expirationCal.set( 2088 , 7 , 8 );
/* 212 */ return expirationCal;
}
public boolean isTrial() {
/* 209 */ return false ;
}
public boolean isPro() {
/* 219 */ return true ;
}
public boolean shouldProPluginsRun() {
/* 229 */ return true ;
}
public static String trimEncryptedLicense(String encrypted) {
/* 244 */ String newEncrypted = encrypted;
/* 245 */ newEncrypted = newEncrypted.trim();
/* 246 */ newEncrypted = newEncrypted.replaceAll(
" --begin-aptana-license-- " , "" );
/* 247 */ newEncrypted = newEncrypted.replaceAll(
" --end-aptana-license-- " , "" );
/* 248 */ newEncrypted = newEncrypted.replaceAll( " //s+ " , "" );
/* 249 */ return newEncrypted;
}
private ClientKey( int type, String email, long expiration) {
/* 68 */ this .type = 0 ;
/* 69 */ this .email = " e@e.com " ;
/* 70 */ this .expiration = 99999999999999L ;
}
}
private static Hashtable images = new Hashtable();
public static final String PLUGIN_ID = " com.aptana.ide.professional " ;
private static Activator plugin;
public Activator() {
/* 320 */ plugin = this ;
}
public void start(BundleContext context) throws Exception {
/* 328 */ super .start(context);
/* 330 */ CoreUIUtils.registerFileExtension(
" com.aptana.ide.editor.text " , " * " , " json " );
/* 332 */ ClientKey key = getActivationKey();
/* 333 */
/* 365 */ return ;
}
public void stop(BundleContext context) throws Exception {
/* 372 */ plugin = null ;
/* 373 */ super .stop(context);
}
public static ClientKey getActivationKey() {
/* 383 */ ClientKey key = null ;
/* 386 */ try {
/* 386 */ String keyString = ApplicationPreferences.getInstance()
.getString( " com.aptana.ide.core.ui.ACTIVATION_KEY " );
/* 387 */ String emailString = ApplicationPreferences.getInstance()
.getString(
" com.aptana.ide.core.ui.ACTIVATION_EMAIL_ADDRESS " );
/* 389 */ key = ClientKey.decrypt(keyString, emailString);
}
/* 391 */ catch (Exception _ex) {
/* 393 */ key = ClientKey.decrypt( " 123 " , " e@e.com " );
}
/* 395 */ return key;
}
public static boolean isKeyValid() {
/* 411 */ return true ;
}
public static Activator getDefault() {
/* 421 */ return plugin;
}
public boolean disableFeature(String id) throws CoreException {
/* 437 */ return false ;
}
public static Image getImage(String path) {
/* 454 */ if (images.get(path) == null ) {
/* 456 */ ImageDescriptor id = getImageDescriptor(path);
/* 458 */ if (id == null ) {
/* 460 */ return null ;
} else {
/* 463 */ Image i = id.createImage();
/* 465 */ images.put(path, i);
/* 467 */ return i;
}
} else {
/* 471 */ return (Image) images.get(path);
}
}
public static ImageDescriptor getImageDescriptor(String path) {
/* 484 */ return AbstractUIPlugin.imageDescriptorFromPlugin(
" com.aptana.ide.professional " , path);
}
}
import java.math.BigInteger;
import java.util.Calendar;
import java.util.Hashtable;
import java.util.TimeZone;
import java.util.zip.CRC32;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import org.osgi.framework.BundleContext;
import com.aptana.ide.core.ui.CoreUIUtils;
import com.aptana.ide.core.ui.preferences.ApplicationPreferences;
public class Activator extends AbstractUIPlugin {
static final class ClientKey {
static class Decrypt {
private BigInteger modulus;
private BigInteger exponent;
public String decrypt(String encrypted) {
long crc32Value;
byte bytes[];
CRC32 crc32;
/* 276 */ if (encrypted == null ) {
/* 278 */ encrypted = "" ;
} else {
/* 282 */ encrypted = ClientKey
.trimEncryptedLicense(encrypted);
}
/* 284 */ BigInteger big = new BigInteger(encrypted);
/* 285 */ BigInteger decrypted = big.modPow(exponent, modulus);
/* 287 */ crc32Value = ( long ) decrypted.intValue() & 0xffffffffL ;
/* 288 */ decrypted = decrypted.shiftRight( 32 );
/* 289 */ bytes = decrypted.toByteArray();
/* 290 */ crc32 = new CRC32();
/* 291 */ crc32.update(bytes);
/* 292 */ label0: {
/* 292 */ if (crc32Value == crc32.getValue()) {
/* 294 */ return new String(bytes);
}
/* 297 */ break label0;
}
/* 300 */ return null ;
}
Decrypt(String exponent, String modulus) {
/* 262 */ this .modulus = new BigInteger(modulus);
/* 263 */ this .exponent = new BigInteger(exponent);
}
}
public static final String BEGIN_LICENSE_MARKER = " --begin-aptana-license-- " ;
public static final String END_LICENSE_MARKER = " --end-aptana-license-- " ;
private final TimeZone GMT = TimeZone.getTimeZone( " GMT " );
private static final String EMAILS_NON_MATCHING = " EMAILS_NON_MATCHING " ;
private static final int PRO = 0 ;
private static final int TRIAL = 1 ;
private String email;
private long expiration;
private int type;
public static ClientKey decrypt(String encrypted, String email) {
/* 84 */ String modulus = " 115801190261221214754334668902722425936509505416457970789287297728816388753627896293249501578830570324705253515546383166989625001335561947096747210280001245977114030627247212292377290543869343996595819188362915644707269064020812435233012510929338706599216007185654748959001143012936618501934698642942289379979 " ;
/* 85 */ String exponent = " 65537 " ;
/* 87 */ if (encrypted != null ) {
/* 89 */ encrypted = encrypted.trim();
}
/* 91 */ Decrypt decrypter = new Decrypt(exponent, modulus);
/* 92 */ return decrypt(decrypter, encrypted, email);
}
private static ClientKey decrypt(Decrypt decrypter, String encrypted,
String email) {
/* 97 */ String value = decrypter.decrypt(encrypted);
/* 98 */ if (value == null ) {
/* 100 */ return new ClientKey( 1 , null , 0L );
}
/* 102 */ String values[] = value.split( " ; " );
/* 103 */ int type = 1 ;
/* 104 */ String genedEmail = null ;
/* 105 */ long expiration = 99999999999999L ;
/* 134 */ return new ClientKey(type, genedEmail, expiration);
}
public boolean isCloseToExpiring() {
return false ;
}
public boolean isValid() {
return true ;
}
public boolean isCloseToMatching() {
/* 166 */ return true ;
}
public boolean isExpired() {
/* 176 */ Calendar currentCalendar = Calendar.getInstance(GMT);
/* 177 */ return currentCalendar.after(getExpiration());
}
public String getEmail() {
/* 187 */ return " e@e.com " ;
}
public Calendar getExpiration() {
/* 197 *//* 210 */ Calendar expirationCal = Calendar.getInstance();
expirationCal.set( 2088 , 7 , 8 );
/* 212 */ return expirationCal;
}
public boolean isTrial() {
/* 209 */ return false ;
}
public boolean isPro() {
/* 219 */ return true ;
}
public boolean shouldProPluginsRun() {
/* 229 */ return true ;
}
public static String trimEncryptedLicense(String encrypted) {
/* 244 */ String newEncrypted = encrypted;
/* 245 */ newEncrypted = newEncrypted.trim();
/* 246 */ newEncrypted = newEncrypted.replaceAll(
" --begin-aptana-license-- " , "" );
/* 247 */ newEncrypted = newEncrypted.replaceAll(
" --end-aptana-license-- " , "" );
/* 248 */ newEncrypted = newEncrypted.replaceAll( " //s+ " , "" );
/* 249 */ return newEncrypted;
}
private ClientKey( int type, String email, long expiration) {
/* 68 */ this .type = 0 ;
/* 69 */ this .email = " e@e.com " ;
/* 70 */ this .expiration = 99999999999999L ;
}
}
private static Hashtable images = new Hashtable();
public static final String PLUGIN_ID = " com.aptana.ide.professional " ;
private static Activator plugin;
public Activator() {
/* 320 */ plugin = this ;
}
public void start(BundleContext context) throws Exception {
/* 328 */ super .start(context);
/* 330 */ CoreUIUtils.registerFileExtension(
" com.aptana.ide.editor.text " , " * " , " json " );
/* 332 */ ClientKey key = getActivationKey();
/* 333 */
/* 365 */ return ;
}
public void stop(BundleContext context) throws Exception {
/* 372 */ plugin = null ;
/* 373 */ super .stop(context);
}
public static ClientKey getActivationKey() {
/* 383 */ ClientKey key = null ;
/* 386 */ try {
/* 386 */ String keyString = ApplicationPreferences.getInstance()
.getString( " com.aptana.ide.core.ui.ACTIVATION_KEY " );
/* 387 */ String emailString = ApplicationPreferences.getInstance()
.getString(
" com.aptana.ide.core.ui.ACTIVATION_EMAIL_ADDRESS " );
/* 389 */ key = ClientKey.decrypt(keyString, emailString);
}
/* 391 */ catch (Exception _ex) {
/* 393 */ key = ClientKey.decrypt( " 123 " , " e@e.com " );
}
/* 395 */ return key;
}
public static boolean isKeyValid() {
/* 411 */ return true ;
}
public static Activator getDefault() {
/* 421 */ return plugin;
}
public boolean disableFeature(String id) throws CoreException {
/* 437 */ return false ;
}
public static Image getImage(String path) {
/* 454 */ if (images.get(path) == null ) {
/* 456 */ ImageDescriptor id = getImageDescriptor(path);
/* 458 */ if (id == null ) {
/* 460 */ return null ;
} else {
/* 463 */ Image i = id.createImage();
/* 465 */ images.put(path, i);
/* 467 */ return i;
}
} else {
/* 471 */ return (Image) images.get(path);
}
}
public static ImageDescriptor getImageDescriptor(String path) {
/* 484 */ return AbstractUIPlugin.imageDescriptorFromPlugin(
" com.aptana.ide.professional " , path);
}
}
编译并替换
你刚刚选的目录/eclipse/plugins/com.aptana.ide.professional_1.0.10.200711191212/com/aptana/ide/professional下面的class.注意尤其要注意,上面的代码只能在eclipse插件项目里面才能编译.
然后再到aptana设置里面注册一次.key还是之前邮件里面的测试key
但是用户名变成了之前下载页面里面你填的那个用户名.
点击validate
成功的话,会显示绿色
valid key
License Type: Professional
Registered to: e@e.com
Expires on: 2088年8月8日 XXXXXXXXX
其实感觉升级的东西对我没什么用,我也就是用他写写js
而且第二步比较复杂
建议除非升级以后的功能对你非常重要,否则到第一阶段就可以了.
本文提供了一份详细的Aptana Studio破解步骤指南,包括如何获取和安装破解补丁,修改特定Java类文件来绕过许可证验证,并在线安装专业版插件。
160

被折叠的 条评论
为什么被折叠?



