大凡初次使用java命令運行java程式時有時回拋出“僅當顯式請求注釋處理時才接受類名稱”的錯誤提示,那麼為什麼會產生以及如何處理。
請看如下代碼:
import javax.swing.JFrame;<br />import javax.swing.JButton;<br />public class MyFrame extends javax.swing.JFrame {<br /> JButton button = null;<br /> public MyFrame() {<br /> initButton();<br /> add(button);<br /> this.setSize(400,400);<br /> this.show();<br /> } </p><p> private void initButton() {<br /> if(button == null) {<br /> button = new JButton("ok");<br /> }<br /> }<br /> public static void main(String [] args) {<br /> new MyFrame();<br /> }<br />}<br />
這段代碼其實很簡單就是一個JFrame裡放置一個JButton。
使用javac 編譯後產生class
使用java 運行時報出“僅當顯式請求注釋處理時才接受類名稱”。
其實原因很簡單,就是因為show方法是一個一過時的方法造成。解決方案:
在使用javac編譯該類時已經有了提示:
注意:MyFrame.java使用或覆蓋了已淘汰的API
注意:要瞭解詳細資料,請使用-Xlint:deprecation 重新編譯。
接下來我們只需要按此方法重新編譯即可:
javac -Xlint:deprecation MyFrame.java
執行後會列出到期方法的列表資訊,可以忽略,只要class檔案正確編譯成功即可
然後在使用java 命令運行class檔案就不會出現上述錯誤提示。
解決方案很簡單,網上也有很多人提過此類問題,但回答到點子上的很少,所以大家以後遇到問題先仔細分析,然後思考。
結束