您的位置:首页技术文章
文章详情页

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

【字号: 日期:2024-01-07 18:01:35浏览:38作者:猪猪

问题描述

比如下面这段Java源码:

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

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

这个怎么写插件实现呢?

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

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

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

问题解答

回答1:

我希望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');}回答2:

通过环境变量设置

回答3:

AbstractProcessor应该使用注解处理器而不是插件。

标签: java