天天看點

myeclipse建立java錯誤提示_myeclipse 遇到的一些問題及解決方案

1.、提示鍵配置一般預設情況下,Eclipse ,MyEclipse 的代碼提示功能是比Microsoft Visual Studio的差很多的,主要是Eclipse ,MyEclipse本身有很多選項是預設關閉的,要開發者自己去手動配置。如果開發者不清楚的話,就不知道Eclipse ,MyEclipse的代碼提示功能一樣能像Microsoft Visual Studio的代碼提 示功能一樣強大。先舉個簡單的例子說明問題所在,例如在Eclipse ,MyEclipse代碼裡面,打個foreach,switch等這些,是無法得到代碼提示的(不信自己試試),其他的就更不用說了,而在Microsoft VisualStudio 裡面是得到非常友好的代碼提示的。實際上,Eclipse ,MyEclipse代碼裡面的代碼提示功能預設的一般 是點“.”,一般是有了點“.”,才會有代碼提示。原理:“Auto Activation triggers for java”這個選項就是指觸發代碼提示的的選項,把“.”改成“.abcdefghijklmnopqrstuvwxyz(,”的意思,就是指遇到26個字母和.,(這些符号就觸發代碼提 示功能了。增強Eclipse ,MyEclipse 的代碼提示功能,具體怎麼樣來配置?下面開始說步驟:1. 打開MyEclipse ,然後“window”→“Preferences”2. 選擇“java”,展開,“Editor”,選擇“Content Assist”。3. 選擇“Content Assist”,然後看到右邊,右邊的“Auto-Activation”下面的“AutoActivation triggers for java”這個選項。其實就是指觸發代碼提示的就是“.”這個符号.4. “Auto Activation triggers for java”這個選項,在“.”後加abc字母,友善後面的查找修改。然後“apply”,點選“OK”。5. 然後,任意選擇個項目“File”→“Export”,在彈出的視窗中選擇“Perferences”,點選“下一步”。6. 選擇導出檔案路徑,本人導出到桌面,輸入“test”作為檔案名,點選“儲存”。7. 在桌面找到剛在儲存的檔案“test.epf”,右鍵選擇“用記事本打開”。8. 可以看到很多配置MyEclipse 的資訊9. 按“ctrl + F”快捷鍵,輸入“.abc”,點選“查找下一個”。10. 查找到“.abc”的配置資訊.11. 把“.abc”改成“.abcdefghijklmnopqrstuvwxyz(,”,儲存,關閉“test.epf”。12. 回到MyEclipse 界面,“File”→“Import”,在彈出的視窗中選擇“Perferences”,點選 “下一步”,選擇剛在已經修改的“test.epf”檔案,點選“打開”,點選“Finish”。該步驟和上面 的導出步驟類似。13. 最後當然是進行代碼測試了。随便建立一個工程,建立一個類。在代碼輸入switch,foreach等進行 測試。你立即會發現,果然出了提示,而且無論是敲哪個字母都會有很多相關的提示了,很流暢,很友善。總結:“Auto Activation triggers for java”這個選項就是指觸發代碼提示的的選項,把“.”改成 “.abcdefghijklmnopqrstuvwxyz(,”的意思,就是指遇到26個字母和.這些符号就觸發代碼提示功能了。最後:自動提示彈出的時間最好改成100毫秒以下,不然你都完事了,自動提示才彈出來。2.調整Myeclipse中代碼的顯示大小window->preferences->general->apperance->colors and fonts->basic->text->fonts然後點選change 就可以改了!3、.MyEclipse裡面如何用快捷鍵打出System.out.println():如果你列印Sy字元時沒有提示名為sysout的指令名,你可以自定義要列印的字元串和指令名。類似(可key—value)可以在 Windows->Preferences->Java->Editor->Templates->new 這裡就可以自定義了。4.提示快捷鍵設定:打開Window->Preference->Generate->Keys,出現一個大的對話框,"Alt+/"對應的指令名稱是:"Content Assist",找到該條指令,單擊選中它。這時在視窗下面的Binding 和 When 會出現自動顯示該指令的資訊,删掉Binding中的資訊,然後按下鍵盤Alt+/,這個時候Binding就會自動顯示Alt+/的快捷鍵,然後when視窗中選擇Editing Java Source ,最後點選OK。5.java.io.IOException: 句柄無效。java.io.IOException: 句柄無效。at java.io.FileInputStream.close0(Native Method)at java.io.FileInputStream.close(Unknown Source)at java.io.PushbackInputStream.close(Unknown Source)at java.util.zip.InflaterInputStream.close(Unknown Source)at java.util.zip.ZipInputStream.close(Unknown Source)at org.apache.catalina.util.ExtensionValidator.getManifest(ExtensionValidator.java:375)at org.apache.catalina.util.ExtensionValidator.validateApplication(ExtensionValidator.java:184)at org.apache.catalina.core.StandardContext.start(StandardContext.java:4154)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)此類異常和jdk的版有點關系.解決辦法:1.換個高版本的JDK.(未試過)2.将tomcat的虛拟機(指向jre目錄)指向JDK目錄. 如:tomcat原來的虛拟機是指向:C:\Program Files\Java\jre1.6.0_02\bin\client\jvm.dll 則指向C:\Program Files\Java\jdk1.6.0_02\jre\bin\client\jvm.dll(本人已測試通過)6.smartupload 上傳檔案時出現 java.lang.NegativeArraySizeException解決方法:

這個錯誤還是很少見到的。因為很少有人GET送出這種上傳的表單。上傳檔案是出現  java.lang.SecurityException解決方案 : smart.setAllowedFilesList("doc,txt,jpg");smart.setDeniedFilesList("exe,bat,jsp,htm,html");檢查檔案中設定權限限制的問題上傳檔案時出現 :java.lang.IllegalArgumentException: This path does not exist (1135).解決方案 : 路徑設定問題 修改設定路徑7.在tomcat(版本6.0.33)的 catalina.out中發現大量memory leak的日志org.apache.catalina.loader.WebappClassLoader clearThreadLocalMapSEVERE: The web application [] created a ThreadLocal with key of type [com.opensymphony.xwork2.inject.ContainerImpl$10] (value [[email protected]]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@51dce88]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.這個是由于tomcat6.0.24以後的版本有加一個監控memory leak的listener 在tomcathome/conf/server.xml但是這個監控有bug才導緻的誤報解決方式任選一種 1 把tomcat降級為6.0.24以下的版本2 将tomcat更新為7.0.6以上的版本3 在server.xml中去掉JreMemoryLeakPreventionListener的listener8.建立類的時候自動生成項目名、包名、時間、開發者名字等等在MyEclipse選擇Windows菜單下的Preferences->Java->Code Style->Code Templates->New Java files,點選右邊的Edit Template,在裡面就可以設定自己喜歡的屬性了,敲進“$”會有自動提醒功能。設定完成之後,每建一個類都會在頂部自動生成自己設定的屬性。9.Exception in thread "main" java.lang.OutOfMemoryError: Java heap space解決方法解決方案[轉]一直都知道可以設定jvm heap大小,一直用eclipse寫/調試java程式。一直用指令行or console加參數跑程式。現象:在eclipse的配置檔案eclipse.ini中設定-vmargs -Xms500m -Xmx1024m,在eclipse中直接run 或者debug某些耗記憶體的程式時依然出現java.lang.OutOfMemoryError: Java Heap Space錯誤,即通常認為的記憶體不足,java虛拟機記憶體不夠用。而在指令行加這些參數則有效果,不會出錯。這說明一個問題,這些參數根本沒有起作用。今天需要在eclipse裡調試程式,還沒到需要調試的地方就heap error了,在網上搜了很多地方,得到了最終的答案:選中被運作的類,點選菜單‘run->run...’,選擇(x)=Argument标簽頁下的vm arguments框裡輸入 -Xmx800m, 儲存運作。原來還需要對每個project單獨設定,汗...同時設定 hibernate.hbm.xml 檔案  2000同時加入 緩存的定期清除操作eg:    session.save(people);if((file.length())%20 == 0){session.flush() ;session.clear() ;}10. 問題 : org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row  count: 0; expected: 1解決方案:hibernate 中的屬性字段與設定的不一緻  修改屬性字段11.myeclipse 下載下傳 hibernate ant 工具  網址:http://www.jboss.org/tools/download.html12. Ant 中的build.xml 檔案預設打開檔案設定preferences==general==editors==file Associations13.修改  jsp 預設的 pageEncodingpreferences === jsp 修改  encoding 為 Chinese……14. Tomcat   資訊: Not binding factory to JNDI, no JNDI name configured   沒事的,隻是警告!!解決方案:沒有加入配置檔案File file=new File("./Hibernate.cfg.xml");Configuration conf = new Configuration().configure(file);15.Myeclipse 錯誤 An internal error has occurred 解決辦法。給MyEclipse的快捷方式加個參數再重新啟動一次。

步驟如下:右鍵選中快捷方式屬性選項,在快捷方式頁,目标一項最後加上-clean選項,如     C:\MyEclipse6\eclipse.exe -clean. 然後重新啟動一下MyEclipse。

1, 當tomcat啟動的時候出現下面錯誤:

[ERROR] org.apache.catalina.session.ManagerBase - IOException while loading persisted sessions: java.io.EOFException

或者

嚴重: IOException while loading persisted sessions: java.io.EOFException

嚴重: Exception loading sessions from persistent storage

原因是:

是因為儲存在硬碟上的session資料讀取失敗,問題似乎不大,但是如果不處理一下,每次啟動都會出現這個問題,處理方法如下:

将work(例如:tomcat5.5.20\work\Catalina\localhost\_下面的檔案清空,主要是*.ser檔案,或者隻是删除掉session.ser亦可。

根據上面所說,我把我的\work\Catalina\下的内容全部删除,問題成功解決。在此感謝,要不然有時候啟動tom大傻貓的時候就會見到這個異常 很煩的!

2.警告: No FormBeanConfig found under 'null'

解決: 檢查formbean的配置

3.Referenced file contains errors

換了myeclipse版本出現這樣錯誤:Referenced file contains errors (http://struts.apache.org/dtds/struts-2.0.dtd). For more information, right click on the

message in the Problems View and select "Show Details..."

解決辦法: 在myeclipse9.0,      [MyEclipse]-[Files-Editors]-[XML]-[XML Catalog]    查找到  “-//Apache Software Foundation//DTD Struts Configuration 2.1//EN ”   和

“-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN ”

隻需将struts.xml檔案  “-//Apache Software Foundation//DTD Struts Configuration 2.0//EN ”   2.0修改為對應的 2.1或是2.1.7   ctrl+s即可

4.嚴重: Exception starting filter struts2

java.lang.NoClassDefFoundError: org/

解決方案:導入 commons-lang- 2.5.jar   javasssist-3.11.0.GA.jar

5.

6.Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (18810408 > 1048576). You can change this value on the server by setting the max_allowed_packet' variable.

解決方案:将 檔案夾 C:\Program Files\MySQL\MySQL Server 5.0 下的 my.ini 檔案最後增加

max_allowed_packet= ..

7.Tomcat啟動時重複出現Socket accept failed錯誤

嚴重: Socket accept failed

java.net.SocketException: select failed

at java.net.PlainSocketImpl.socketAccept(Native Method)

at java.net.PlainSocketImpl.accept(Unknown Source)

at java.net.ServerSocket.implAccept(Unknown Source)

at java.net.ServerSocket.accept(Unknown Source)

at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)

at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310)

at java.lang.Thread.run(Unknown Source)

2012-3-29 19:11:30 org.apache.tomcat.util.net.JIoEndpoint$Acceptor run

解決:

開始-cmd-netsh winsock reset-回車-重新開機伺服器。

簡單來說netsh winsock reset指令含義是重置 Winsock 目錄。如果一台機器上的Winsock協定配置有問題的話将會導緻網絡連接配接等問題,就需要用netsh winsock reset指令來重置Winsock目錄借以恢複網絡。

winsock是windows網絡程式設計接口,從Windows XP SP2開始内置了一條指令使用netsh能夠對該接口進行修複。

netsh是一個能夠通過指令行操作幾乎所有網絡相關設定的接口。比如設定IP,DNS,網卡,無線網絡等。

netsh winsock reset:

先進入netsh

然後進入winsock這個部件

對winsock這個部件執行reset指令。

效果就是重置Winsock。對于一些WinSock被破壞導緻的問題有奇效。在netsh出現之前,對于WinSock問題的修複是非常繁瑣的。

8;hibernate中遇到的問題

糾結了好長時間,上網一查才知道好多人出現過相同問題,原因一般有:

1,hbm.xml 沒在beans.xml中配置

可我有啊

com.phj.model

2,find()方法中的類名未寫全

我原來是

this.getHibernateTemplate().find("from tb_userInfo");

應該為

this.getHibernateTemplate().find("from com.phj.model.UserInfo");

問題原因:tb_userInfo 是實體對象名,而非表名,原因在此!!