cari

Rumah  >  Soal Jawab  >  teks badan

java - 如何写一个intellij-idea插件,实现编译时修改源代码的目的

比如下面这段Java源码:

1

2

3

<code>String pcName = "$local_pc_name$";

System.out.println(pcName);

</code>

我希望IDEA编译后运行,输出的是具体的电脑名,也就是说,在哪台机器编译,就输出哪台。
比如我是在a-pc这台电脑上编译的,就输出显示a-pc

这个怎么写插件实现呢?

PS:
1、源码不修改,也就是保证另一台电脑编译时也有"$local_pc_name$"这个标记;
2、我想写个IDEA插件,在编译时自动处理这样的字符串。

还烦请大神出手相助一二。

补充:电脑名这个只是我举了个栗子,我的目的是编译时替换特定字符串,而且源码不变。
也感谢已经回复的两位朋友出谋划策。

巴扎黑巴扎黑2810 hari yang lalu843

membalas semua(3)saya akan balas

  • 巴扎黑

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

    Saya berharap selepas IDEA disusun dan dijalankan, output akan menjadi nama komputer tertentu Dalam erti kata lain, mana-mana mesin yang dikompilasi akan menjadi output.

    Cuba ini

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    <code>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");

    }</code>

    balas
    0
  • 怪我咯

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

    Tetapkan melalui pembolehubah persekitaran

    balas
    0
  • PHP中文网

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

    AbstractProcessor
    Pemproses anotasi hendaklah digunakan dan bukannya pemalam.

    balas
    0
  • Batalbalas