作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我们有一个 PrintTarget 类,其中包含 main()。
我们可以这样构建/编译吗,我们应该能够以某种方式在 main.js 中发送构建目标名称。当调用 main() 时,它将打印构建目标名称。
我不想在构建时使用目标名称。我们都知道该怎么做。我希望生成的 JAR 记住目标名称。假设我们创建了 jar printTarget.jar并执行 jar #>java printTarget.jar我希望此调用打印目标名称。
最佳答案
要将数据从构建时传递到运行时,您需要将数据写入存储在 JAR 中的文件中,例如
<jar destfile="printTarget.jar">
<fileset dir="${classes.dir}" />
<manifest>
<attribute name="Main-Class" value="com.example.Main" />
</manifest>
<!-- This is just a way to create a zip entry from inline text in the build
file without having to <echo> it to a real file on disk first -->
<mappedresources>
<mergemapper to="com/example/buildinfo.properties"/>
<string encoding="ISO-8859-1"># this is a generated file, do not edit
targetname=custom-build-1
</string>
</mappedresources>
</jar>
然后你可以在你的主要方法中阅读
package com.example;
import java.io.*;
import java.util.Properties;
public class Main {
public static void main(String[] args) throws Exception {
Properties buildInfo = new Properties();
InputStream is = Main.class.getResourceAsStream("buildinfo.properties");
try {
buildInfo.load(is);
} finally {
is.close();
}
System.out.println("Build target was " +
buildInfo.getProperty("targetname", "<unknown>"));
}
}
这应该打印
Build target was custom-build-1
关于java - 如何在 Java 中打印构建目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13654299/
我是一名优秀的程序员,十分优秀!