隨筆-11  評(píng)論-0  文章-0  trackbacks-0
            2010年9月29日

          一.Myeclipse10下載與破解

          Genuitec 公司發(fā)布了MyEclipse 10,一款Genuitec旗下的商業(yè)化Eclipse集成開發(fā)工具的升級(jí)版本。MyEclipse 10基于Eclipse Indigo構(gòu)建,為Java和JavaEE項(xiàng)目提供了Maven3的支持。本次發(fā)布的版本中還加入了對(duì)JaveEE 6、HTML5、JPA2和JSF 2的支持。版本號(hào)10是為了慶祝即將到來的Eclipse的10周年誕辰(MyEclipse的首次發(fā)布是在8年前)。

          我現(xiàn)在用的還是6.5的版本,6.5的版本是我覺得最好用的一個(gè)版本。 我裝上了,還沒感受到有哪些好用,就是感覺體積龐大,和IBM 的WID一樣,是個(gè)多面手,啥事都能干,其實(shí)經(jīng)常能使用的也就其中那么幾個(gè)功能,要是能像插件一樣,即插即用就好了。 

          MyEclipse 10使用最高級(jí)的桌面和Web開發(fā)技術(shù),包括 HTML5 和 Java EE 6,支持 JPA 2.0、JSF 2.0 、Eclipselink 2.1 以及 OpenJPA 2.0. 而對(duì) IBM WebSphere 用戶來說,MyEclipse Blue 支持最新版本的 WebSphere Portal Server 7.0、WebSphere 8 以及以前的版本,無縫的支持 IBM DB2 數(shù)據(jù)庫 。 MyEclipse 是一個(gè)十分優(yōu)秀的用于開發(fā)Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常強(qiáng)大,支持也十分廣泛,尤其是對(duì)各種開元產(chǎn)品的支持十分不錯(cuò)。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC數(shù)據(jù)庫鏈接工具等多項(xiàng)功能。可以說MyEclipse幾乎囊括了目前所有主流開元產(chǎn)品的專屬eclipse開發(fā)工 具。

          以下是下載與破解鏈接(右擊迅雷下載):

          Myeclipse10 正式下載

          Myeclipse10 Bule版下載

          Myeclipse9/10破解包(內(nèi)附詳細(xì)破解步驟)

          另附Myeclipse8/9/10 Verycd下載出處:Myeclipse_Verycd下載

          二.Myeclipse10修改字體

          MyEclipse10 是基于Eclipse3.7內(nèi)核,但在Eclipse的Preferences-〉general-〉A(chǔ)ppearance->Colors and Fonts 中并沒有找到Courier New字體,它采用的是Consolas字體,中文看著非常小非常別扭,在Windows7下,系統(tǒng)自帶雖然有Courier New字體,但是并沒有激活顯示,需要手動(dòng)激活,才能在軟件中使用

          激活方法如下:
          在win7的控制面板->字體,找到Courier New,右鍵,顯示。然后在eclipse的fonts列表中就可以選擇了。上兩張圖


          三.Myeclipse10插件安裝

          說到插件,myeclipse自8.X開始,插件安裝就變得巨難用,通常最好還是用離線安裝,在線安裝很可能出問題,下面僅以SVN安裝為例,其他諸如ADT15,Aptana等都可采用

          1.首先下載SVN包:svn-1.6
          2.解壓SVN包,然后找到其中的兩個(gè)文件夾:features 和 plugins
          3.隨意建一個(gè)文件夾(位置和名稱自己定就好了,我的是E:\myEclipsePlugin\svn),然后把第二步的解壓好的features 和 plugins放到這個(gè)文件夾下
          4.找到myeclipse的安裝目錄,下面有一個(gè)configuration\org.eclipse.equinox.simpleconfigurator\bundles.info 文件。現(xiàn)在需要做的就是在該文件內(nèi)添加的東西
          5.添加的內(nèi)容用下面的類生成:

          1. <span style="font-size:13px;">import java.io.File;     
          2. import java.util.ArrayList;     
          3. import java.util.List;     
          4. /**   
          5.  * MyEclipse9 插件配置代碼生成器   
          6.  *   
          7.  *   
          8.  */    
          9. public class PluginConfigCreator     
          10. {     
          11.     public PluginConfigCreator()     
          12.     {     
          13.     }     
          14.     public void print(String path)     
          15.     {     
          16.         List<String> list = getFileList(path);     
          17.         if (list == null)     
          18.         {     
          19.             return;     
          20.         }     
          21.         int length = list.size();     
          22.         for (int i = 0; i < length; i++)     
          23.         {     
          24.             String result = "";     
          25.             String thePath = getFormatPath(getString(list.get(i)));     
          26.             File file = new File(thePath);     
          27.             if (file.isDirectory())     
          28.             {     
          29.                 String fileName = file.getName();     
          30.                 if (fileName.indexOf("_") < 0)     
          31.                 {     
          32.                     print(thePath);     
          33.                     continue;     
          34.                 }     
          35.                 String[] filenames = fileName.split("_");     
          36.                 String filename1 = filenames[0];     
          37.                 String filename2 = filenames[1];     
          38.                 result = filename1 + "," + filename2 + ",file:/" + path + "/"    
          39.                         + fileName + "\\,4,false";     
          40.                 System.out.println(result);     
          41.             } else if (file.isFile())     
          42.             {     
          43.                 String fileName = file.getName();     
          44.                 if (fileName.indexOf("_") < 0)     
          45.                 {     
          46.                     continue;     
          47.                 }     
          48.                 int last = fileName.lastIndexOf("_");// 最后一個(gè)下劃線的位置     
          49.                 String filename1 = fileName.substring(0, last);     
          50.                 String filename2 = fileName.substring(last + 1, fileName     
          51.                         .length() - 4);     
          52.                 result = filename1 + "," + filename2 + ",file:/" + path + "/"    
          53.                         + fileName + ",4,false";     
          54.                 System.out.println(result);     
          55.             }     
          56.         }     
          57.     }     
          58.     public List<String> getFileList(String path)     
          59.     {     
          60.         path = getFormatPath(path);     
          61.         path = path + "/";     
          62.         File filePath = new File(path);     
          63.         if (!filePath.isDirectory())     
          64.         {     
          65.             return null;     
          66.         }     
          67.         String[] filelist = filePath.list();     
          68.         List<String> filelistFilter = new ArrayList<String>();     
          69.         for (int i = 0; i < filelist.length; i++)     
          70.         {     
          71.             String tempfilename = getFormatPath(path + filelist[i]);     
          72.             filelistFilter.add(tempfilename);     
          73.         }     
          74.         return filelistFilter;     
          75.     }     
          76.     public String getString(Object object)     
          77.     {     
          78.         if (object == null)     
          79.         {     
          80.             return "";     
          81.         }     
          82.         return String.valueOf(object);     
          83.     }     
          84.     public String getFormatPath(String path)     
          85.     {     
          86.         path = path.replaceAll("\\\\", "/");     
          87.         path = path.replaceAll("http://", "/");     
          88.         return path;     
          89.     }     
          90.     public static void main(String[] args)     
          91.     {     
          92.         /*你的SVN的features 和 plugins復(fù)制后放的目錄*/    
          93.             String plugin = "E:/myEclipsePlugin/svn/";     
          94.         new PluginConfigCreator().print(plugin);     
          95.     }     
          96. }  </span>  
          6.把以上生成的字符串(一大堆)添加到第四步bundles.info文件的后面,然后重啟myeclipse即可。


          此外Adobe Flash Builder 4.6也完美支持Myeclipse10,只是插件在安裝的時(shí)候不是采用以上方式,根據(jù)官方英文文檔說明,

          首先要將Adobe Flash Builder 4.6安裝完成,

          然后進(jìn)安裝目錄~\Adobe\Adobe Flash Builder 4.6\utilities運(yùn)行Adobe Flash Builder 4.6 Plug-in Utility.exe,

          最后根據(jù)安裝向?qū)гO(shè)置插件安裝到myeclipse10的目錄~\Genuitec\MyEclipse 10,必須確保該目錄下包含dropins文件

          如此即可完成最新的Adobe Flash Builder 4.6插件的安裝,最后啟動(dòng)myeclipse10,界面也隨之變成中文,但有時(shí)候也會(huì)有出問題,此時(shí)進(jìn)入到~\Genuitec\MyEclipse 10\Uninstall Adobe Flash Builder 4.6 Plug-in目錄,運(yùn)行Uninstall Adobe Flash Builder 4.6 Plug-in.exe卸載插件,重新安裝,第二次必定成功,myeclipse10對(duì)插件的兼容性沒有eclipse的好,千萬不可嘗試按 eclipse的配置去暴力修改里面的參數(shù),否則極有可能再也起不來了!


          四.Myeclipse10優(yōu)化

          最后談?wù)勅绾蝺?yōu)化Myeclipse10

          1、window-preferences-MyEclipse Enterprise Workbench-Maven4MyEclipse-Maven,將Maven JDK改為電腦上安裝的JDK,即不使用myeclipse提高的JDK
          登記add按鈕,選擇你的電腦上的JDK即可(注意:不是JRE,我的值為:Java6.014)

          2、window-preferences-MyEclipse Enterprise Workbench-Matisse4Myeclipse/Swing,將Design-time information(dt.jar) location 改用電腦安裝的JDK的dt.jar
          (即不使用myeclipse提供的dt.jar,我的值為:C:\Java6.014\lib\dt.jar)

          經(jīng)過以上的優(yōu)化,myeclipse的啟動(dòng)時(shí)間可以減少2/3,Tomcat的啟動(dòng)速度可以減少1/2(視具體情況而定)

          第一步: 取消自動(dòng)validation
          validation有一堆,什么xml、jsp、jsf、js等等,我們沒有必要全部都去自動(dòng)校驗(yàn)一下,只是需要的時(shí)候才會(huì)手工校驗(yàn)一下!

          取消方法:
          windows–>perferences–>myeclipse–>validation
          除開Manual下面的復(fù)選框全部選中之外,其他全部不選
          手工驗(yàn)證方法:
          在要驗(yàn)證的文件上,單擊鼠標(biāo)右鍵–>myeclipse–>run validation

           

          第二步:取消Eclipse拼寫檢查
          1、拼寫檢查會(huì)給我們帶來不少的麻煩,我們的方法命名都會(huì)是單詞的縮寫,他也會(huì)提示有錯(cuò),所以最好去掉,沒有多大的用處

          windows–>perferences–>general–>validation->editors->Text Editors->spelling

           

          第三步:取消myeclipse的啟動(dòng)項(xiàng)
          myeclipse會(huì)有很多的啟動(dòng)項(xiàng),而其中很多我們都用不著,或者只用一兩個(gè),取消前面不用的就可以

          windows–>perferences–>general–>startup and shutdown  (詳見底端介紹)

           

          第四步:更改jsp默認(rèn)打開的方式
          安裝了myeclipse后,編輯jsp頁面,會(huì)打開他的編輯頁面,同時(shí)也有預(yù)覽頁面,速度很慢,不適合開發(fā)。所以更改之windows–>perferences–>general–>editors->file associations

          在下方選擇一種編輯器,然后點(diǎn)擊左邊的default按鈕

           

          第五步:更改代碼提示快捷鍵(不建議使用增強(qiáng)提示,使用Ctrl+/在自己需要的時(shí)候提示更佳)

          現(xiàn)在的代碼提示快捷鍵,默認(rèn)為ctrl+space,而我們輸入法切換也是,所以會(huì)有沖突。誰叫myeclipse是外國(guó)人做的呢。。根本不需要切換輸入法.

          windows–>perferences–>general–>Keys

          更改 content assist 為 alt+/

          同時(shí)由于alt+/已經(jīng)被word completion占用,所以得同時(shí)修改word completion的快捷鍵值

          好了,現(xiàn)在的速度及方便性是不是提高了。

           

          第六步: 更改內(nèi)存使用文件

          1、打開 myeclipse.ini

          1. -vmargs  
          2. -Xms256m  
          3. -Xmx1024m     
          4. -XX:PermSize=128M  
          5. -XX:MaxPermSize=256M  
          把下面的那個(gè) -XX:MaxPermSize 調(diào)大,比如 -XX:MaxPermSize=512M,再把 -XX:PermSize 調(diào)成跟 -XX:MaxPermSize一樣大
          原因:大家一定對(duì)這個(gè)畫面很熟悉吧:

          幾乎每次 eclipse 卡到當(dāng)都是因?yàn)檫@個(gè)非堆內(nèi)存不足造成的,把最大跟最小調(diào)成一樣是因?yàn)椴蛔?nbsp;myeclipse 頻繁的換內(nèi)存區(qū)域大小

          注意:XX:MaxPermSize 和 Xmx 的大小之和不能超過你的電腦內(nèi)存大小

          以下是有關(guān)內(nèi)存的一些知識(shí)擴(kuò)展:

          1.堆(Heap)和非堆(Non-heap)內(nèi)存
          按照官方的說法:“Java 虛擬機(jī)具有一個(gè)堆,堆是運(yùn)行時(shí)數(shù)據(jù)區(qū)域,所有類實(shí)例和數(shù)組的內(nèi)存均從此處分配。堆是在 Java 虛擬機(jī)啟動(dòng)時(shí)創(chuàng)建的。”“在JVM中堆之外的內(nèi)存稱為非堆內(nèi)存(Non-heap memory)”。可以看出JVM主要管理兩種類型的內(nèi)存:堆和非堆。簡(jiǎn)單來說堆就是Java代碼可及的內(nèi)存,是留給開發(fā)人員使用的;非堆就是JVM留給 自己用的,所以方法區(qū)、JVM內(nèi)部處理或優(yōu)化所需的內(nèi)存(如JIT編譯后的代碼緩存)、每個(gè)類結(jié)構(gòu)(如運(yùn)行時(shí)常數(shù)池、字段和方法數(shù)據(jù))以及方法和構(gòu)造方法 的代碼都在非堆內(nèi)存中。
          2.堆內(nèi)存分配
          JVM初始分配的內(nèi)存由-Xms指定,默認(rèn)是物理內(nèi)存的1/64;JVM最大分配的內(nèi)存由-Xmx指定,默認(rèn)是物理內(nèi)存的1/4。默認(rèn)空余堆內(nèi)存小于 40%時(shí),JVM就會(huì)增大堆直到-Xmx的最大限制;空余堆內(nèi)存大于70%時(shí),JVM會(huì)減少堆直到-Xms的最小限制。因此服務(wù)器一般設(shè)置-Xms、 -Xmx相等以避免在每次GC 后調(diào)整堆的大小。
          3.非堆內(nèi)存分配
          JVM使用-XX:PermSize設(shè)置非堆內(nèi)存初始值,默認(rèn)是物理內(nèi)存的1/64;由XX:MaxPermSize設(shè)置最大非堆內(nèi)存的大小,默認(rèn)是物理內(nèi)存的1/4。
          4.JVM內(nèi)存限制(最大值)
          首先JVM內(nèi)存限制于實(shí)際的最大物理內(nèi)存,假設(shè)物理內(nèi)存無限大的話,JVM內(nèi)存的最大值跟操作系統(tǒng)有很大的關(guān)系。簡(jiǎn)單的說就32位處理器雖然可控內(nèi)存空間 有4GB,但是具體的操作系統(tǒng)會(huì)給一個(gè)限制,這個(gè)限制一般是2GB-3GB(一般來說Windows系統(tǒng)下為1.5G-2G,Linux系統(tǒng)下為2G- 3G),而64bit以上的處理器就不會(huì)有限制了。
          舉例說明含義:
          -Xms128m 表示JVM Heap(堆內(nèi)存)最小尺寸128MB,初始分配
          -Xmx512m 表示JVM Heap(堆內(nèi)存)最大允許的尺寸256MB,按需分配。
          說明:如果-Xmx不指定或者指定偏小,應(yīng)用可能會(huì)導(dǎo)致java.lang.OutOfMemory錯(cuò)誤,此錯(cuò)誤來自JVM不是Throwable的,無法用try...catch捕捉。
          PermSize和MaxPermSize指明虛擬機(jī)為java永久生成對(duì)象(Permanate generation)如,class對(duì)象、方法對(duì)象這些可反射(reflective)對(duì)象分配內(nèi)存限制,這些內(nèi)存不包括在Heap(堆內(nèi)存)區(qū)之中。
          -XX:PermSize=64MB 最小尺寸,初始分配 
          -XX:MaxPermSize=256MB 最大允許分配尺寸,按需分配
          過小會(huì)導(dǎo)致:java.lang.OutOfMemoryError: PermGen space
          MaxPermSize缺省值和-server -client選項(xiàng)相關(guān)。-server選項(xiàng)下默認(rèn)MaxPermSize為64m  -client選項(xiàng)下默認(rèn)MaxPermSize為32m
          PS:不同廠家的jdk垃圾回收算法不一樣。在sun的jdk下,Xms和Xmx設(shè)置一樣,可以減輕伸縮堆大小帶來的壓力,但在ibm的jdk下面,設(shè)置為一樣會(huì)增大堆碎片產(chǎn)生的幾率。


          第七步: 修改Struts-config.xml文件打開錯(cuò)誤

          有時(shí)點(diǎn)擊myeclipse里的struts的xml配置文件,會(huì)報(bào)錯(cuò):

          Error opening the editorUnable to open the editor ,unknow the editor id…..

          把這個(gè)窗口關(guān)閉后才出正確的xml文件顯示,這個(gè)我們這樣改:

          windows–>perferences–>general–>editors->file associations選擇*.xml,選擇myeclipse xml editor點(diǎn)default,ok

           

          第八步: 取消自動(dòng)驗(yàn)證,該成手動(dòng)驗(yàn)證

          windows-->perferences-->myeclipse-->validation

          將Build下全部勾取消,保留Manual(手動(dòng)) 如果你需要驗(yàn)證某個(gè)文件的時(shí)候,我們可以單獨(dú)去驗(yàn)證它。方法是,在需要驗(yàn)證的文件上( 右鍵 -> MyEclipse -> Run Validation   

           

          第九步: 取消Maven更新(啟動(dòng)更新)

          Window > Preferences > Myeclipse Enterprise Workbench > Maven4Myeclipse > Maven> 禁用Download repository index updates on startup







          到此有關(guān)Myeclipse10的體驗(yàn)介紹完畢,歡迎大家拍磚,轉(zhuǎn)載請(qǐng)注明出處!


          轉(zhuǎn)載于 Myeclipse10下載,安裝,破解,插件,優(yōu)化介紹(CSDN首發(fā))  http://blog.csdn.net/shimiso/article/details/7061000

          posted @ 2011-12-22 09:24 王健 閱讀(2160) | 評(píng)論 (0)編輯 收藏
          客戶端“跨域訪問”一直是一個(gè)頭疼的問題,好在有jQuery幫忙,從jQuery-1.2以后跨域問題便迎刃而解。由于自己在項(xiàng)目中遇到跨域問題,借此機(jī)會(huì)對(duì)跨域問題來刨根問底,查閱了相關(guān)資料和自己的實(shí)踐,算是解決了跨域問題。便記錄下來,以供查閱。 
                  jQuery.ajax()支持get方式的跨域,這其實(shí)是采用jsonp的方式來完成的。
                  真實(shí)案例:
                  $.ajax({ 
                      async:false, 
                      url: 'http://www.mysite.com/demo.do',  // 跨域URL
                      type: 'GET', 
                      dataType: 'jsonp', 
                      jsonp: 'jsoncallback', //默認(rèn)callback
                      data: mydata, 
                      timeout: 5000, 
                      beforeSend: function(){  //jsonp 方式此方法不被觸發(fā)。原因可能是dataType如果指定為jsonp的話,就已經(jīng)不是ajax事件了
                      },
                      success: function (json) { //客戶端jquery預(yù)先定義好的callback函數(shù),成功獲取跨域服務(wù)器上的json數(shù)據(jù)后,會(huì)動(dòng)態(tài)執(zhí)行這個(gè)callback函數(shù) 
                          if(json.actionErrors.length!=0){ 
                              alert(json.actionErrors); 
                          } 
                          genDynamicContent(qsData,type,json); 
                      }, 
                      complete: function(XMLHttpRequest, textStatus){ 
                          $.unblockUI({ fadeOut: 10 }); 
                      }, 
                      error: function(xhr){ 
                          //jsonp 方式此方法不被觸發(fā)
                          //請(qǐng)求出錯(cuò)處理 
                          alert("請(qǐng)求出錯(cuò)(請(qǐng)檢查相關(guān)度網(wǎng)絡(luò)狀況.)"); 
                      } 
                  });

                  注意:
                  $.getJSON(" http://www.mysite.com/demo.do?name1="+value1+"&callback=?", 
                      function(json){ 
                          if(json.屬性名==值){ 
                              // 執(zhí)行代碼 
                          } 
                  }); 
              這種方式其實(shí)是上例$.ajax({..}) api的一種高級(jí)封裝,有些$.ajax api底層的參數(shù)就被封裝而不可見了。

              在服務(wù)端通過callback= request.getParameter("callback") 得到j(luò)Query端隨后要回調(diào)的jsonp32440980
              然后返回類似:"jsonp32440980("+要返回的json數(shù)組+")"; 
              jquery就會(huì)通過回調(diào)方法動(dòng)態(tài)加載調(diào)用這個(gè):jsonp32440980(json數(shù)組);
              這樣就達(dá)到了跨域數(shù)據(jù)交換的目的. 
              jsonp的最基本的原理是:動(dòng)態(tài)添加一個(gè)是一致的(qq空間就是大量采用這種方式來實(shí)現(xiàn)跨域數(shù)據(jù)交換的) 。JSONP是一種腳本注入(Script Injection)行為,所以也有一定的安全隱患。
              注意:jquey是不支持post方式跨域的。
              這是因?yàn)殡m然采用post +動(dòng)態(tài)生成iframe是可以達(dá)到post跨域的目的(有位js牛人就是這樣把jquery1.2.5 打patch的),但這樣做是一個(gè)比較極端的方式,不建議采用。也可以說get方式的跨域是合法的,post方式從安全角度上被認(rèn)為是不合法的,萬不得已還是不要post,client端跨域訪問的需求看來也引起w3c的注意了,看資料說html5 WebSocket標(biāo)準(zhǔn)支持跨域的數(shù)據(jù)交換,應(yīng)該也是一個(gè)將來可選的跨域數(shù)據(jù)交換的解決方案。
          參考:http://www.jb51.net/article/21213.htm

          posted @ 2010-09-29 11:27 王健 閱讀(156) | 評(píng)論 (0)編輯 收藏
               摘要:   閱讀全文
          posted @ 2010-09-29 11:27 王健 閱讀(2480) | 評(píng)論 (0)編輯 收藏
          主站蜘蛛池模板: 全南县| 宝鸡市| 文昌市| 巧家县| 河南省| 五家渠市| 普格县| 长岭县| 阳新县| 靖边县| 湖口县| 全州县| 江北区| 通化市| 兴国县| 宁海县| 旌德县| 大田县| 巴彦县| 固阳县| 安新县| 乌拉特后旗| 南澳县| 通城县| 龙江县| 涿鹿县| 瓮安县| 象山县| 福贡县| 蚌埠市| 都江堰市| 海门市| 泸西县| 枣强县| 会理县| 隆德县| 陵川县| 太仆寺旗| 扶沟县| 乐山市| 桐梓县|