当前位置: 首页 > 知识库问答 >
问题:

如何将filepath从Gradle传递到Java类?

王君墨
2023-03-14

因此,我想要做的是使用Gradle运行我的Java应用程序,但也要将一个。csv&.xml文件传递给我的主类,以便在我的bufferedReader中使用它们&我不知道应该怎么做。我的应用程序不是构建到jar,它应该是用gradle运行任务运行的。我希望用户能够指定他们自己要使用的xml和csv文件(在命令行中),然后运行Java应用程序,而不是询问应用程序中文件的路径。例如,让我们使用这行代码:readerreader=files.newBufferedReader(paths.get(“这里是我想要gradle包含CSV路径的地方”));

共有1个答案

孙钱青
2023-03-14
// sample gradle task to execute a java jar
task runFromGradle() {
    print("java -jar myJar.jar path/to/some.csv".execute().text)
}

// some sample class with a main that accepts args. first arg is the csv path
class Scratch {
    public static void main(String[] args) {
        String csvPath = args[0];
        Reader reader = Files.newBufferedReader(Paths.get(csvPath));
        // do whatever with reader...
    }
}

# from command line
$ gradle runFromGradle

对于@lance-java的评论,当然还有其他方法来完成同样的任务。他提到了另一个可以扩展的javaexec任务。如果您希望使用该路径,这里有一个示例。

// note the `JavaExec` task is only available from the java plugin,
// this may or may not what your app needs
// reference: https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/JavaExec.html
apply plugin: 'java'

task runFromGradle(type: JavaExec) {
  // here gradle has access to the raw sourcesets
  // so we can directly use them for the runtime
  classpath = sourceSets.main.runtimeClasspath

  main = 'com.me.Main'

  // arguments to pass to the application
  args 'path/to/some.csv'
}

# from command line
$ gradle runFromGradle

# java class is the same
 类似资料:
  • 我试图将一个参数从命令行传递到java类。我关注了这篇文章:http://gradle.1045684.n5.nabble.com/gradle-application-plugin-question-td5539555.html,但是代码对我来说不起作用(也许它不适合JavaExec?)。以下是我所尝试的: 上面硬编码的args值的输出是: 任何关于如何将命令行参数传递给gradle的指针都很感

  • 我在C中有一个函数,我需要在Java中创建一个包装器。该函数期望FILE类型的输入参数(来自标准输入输出)。我不相信Swig可以在Java中自动适应一个接口,而不需要在Swig接口文件中进行一些手动工程-我可能错了。 这是我所拥有的 C(标题h): 我尝试过编译,但结果是创建了Swig指针类型:SWIGTYPE_p_FILE,这无助于我将FILE type参数从Java传递到C。

  • 在控制器中(也可能是Main或另一个文件,我不确定这一切是如何工作的),我们有以下内容: 在Scene Bilder生成的FXML中,如下所示:

  • 我通过在我的Java类中调用下面的这个方法加载一个AngularJS页面,只是一个示例。如果我有一个对象,例如人,如何发送到角页面?

  • 问题内容: 我们已经设置了一些参数来在Jenkins中执行构建(使用简单的“参数化构建”设置)。作业被设置为Maven测试。有没有办法以编程方式将这些参数传递到我们的Java代码中?我们需要基于通过Jenkins设置的参数来执行某些更新功能。 问题答案: 是的,您可以通过Maven执行将Jenkins参数传递给Java代码,如下所示: 请注意, $ JOB_PARAM_1 将捕获Jenkins上设

  • 问题内容: 我在C 中有一个方法,该方法将双精度数组作为参数。我从Java调用此方法,需要传递一个双精度数组。C 例程读取和修改数组的值,而我需要Java中的那些更新后的值。我该怎么做呢? 例如,使用C ++例程: 和Java代码: 我猜不能像上面的调用那样对myMethod进行调用…还是可以吗?而在Swig中进行这项工作所需的是什么。如果我无法进行上述调用,如何将我的值获取到C ++代码? 问题