搜尋

首頁  >  問答  >  主體

java - 如何寫一個intellij-idea插件,實現編譯時修改原始碼的目的

比如下麵這段Java源碼:

String pcName = "$local_pc_name$";
System.out.println(pcName);

我希望IDEA編譯後運行,輸出的是具體的電腦名,也就是說,在哪台機器編譯,就輸出哪台。
比如我是在a-pc這台電腦上編譯的,就輸出顯示a-pc

這個怎麼寫插件實現呢?

PS:
1、源碼不修改,也就是保證另一台電腦編譯時也有"$local_pc_name$"這個標記;
2、我想寫個IDEA插件,在編譯時自動處理這樣的字符串。

還煩請大神出手相助一二。

補充:電腦名這個隻是我舉了個栗子,我的目的是編譯時替換特定字符串,而且源碼不變。
也感謝已經回複的兩位朋友出謀劃策。

巴扎黑巴扎黑2802 天前827

全部回覆(3)我來回復

  • 巴扎黑

    巴扎黑2017-04-18 10:55:26

    我希望IDEA編譯後運行,輸出的是具體的電腦名,也就是說,在哪台機器編譯,就輸出哪台。

    試試這個

    import java.net.InetAddress;
    import java.net.UnknownHostException;
    
    String hostname = "Unknown";
    
    try
    {
        InetAddress addr;
        addr = InetAddress.getLocalHost();
        hostname = addr.getHostName();
    }
    catch (UnknownHostException ex)
    {
        System.out.println("Hostname can not be resolved");
    }

    回覆
    0
  • 怪我咯

    怪我咯2017-04-18 10:55:26

    透過環境變數設定

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-18 10:55:26

    AbstractProcessor
    應該使用註解處理器而不是插件。

    回覆
    0
  • 取消回覆