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

在命令提示符和fileNotFoundExceptions中接受ARG的问题

楚勇
2023-03-14

我有几个问题,因为我的问题的基础似乎是我不明白如何从命令提示符正确运行java类文件,并让它们接受参数。

我有我的项目文件夹'projectdna',在这个目录中是我的commands.txt,我希望我的类将其作为参数调用。

ProjectDNA\src

在这里经历了一些其他类似的问题后。在这里,在这里,看看oracles文档,我不是100%知道我应该如何高效地编译、运行txt文件,并将其作为参数。我应该在哪里调用这些命令,命令提示符中的语法应该如何?当我从src文件运行时:

java -cp . package.dna.Sequencer commands.txt

我收到

java.io.FileNotFoundException: commands.txt (The system cannot find the file specified)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(Unknown Source)
        at java.io.FileInputStream.<init>(Unknown Source)
        at java.util.Scanner.<init>(Unknown Source)
        at package.dna.Sequencer.process(Sequencer.java:55)
        at package.dna.Sequencer.main(Sequencer.java:113)

任何帮助都将不胜感激。

共有1个答案

苏宏峻
2023-03-14

这里有几个不同的概念。一个是Java如何处理类路径,另一个是Java程序查找文件的默认位置。

当您使用java命令并提供类路径设置(在您的示例中为-cp)时,您将告诉java您想要的类路径上的包位于何处。在您的示例中,您说包位于当前目录中(.表示当前目录)。然后给出要运行的完全限定类名(例如,使用main()方法)。此时,Java开始运行并加载所请求的类,执行main()方法。启动Java程序的目录被认为是当前工作目录。

当您创建FileInputStream并给它一个文件名时,它将在当前工作目录中查找该文件。您可以为文件提供完全限定的路径,而不仅仅是名称。也可以使用相对路径。例如,在您的情况下,可以将命令指定为:

在本例中,当前的工作目录将是ProjectDNA(包含commands.txt文件和src目录)。cp src告诉Java src目录应该在类路径上(例如,类文件将在该目录下的包中找到)。

 类似资料:
  • 我试图用命令提示符用java编译一个程序。我的程序在eclipse中运行良好,但是,当我试图在命令提示符中编译它时,我收到了一条错误消息。任何帮助和指导都将不胜感激。 triton.java:20:错误:不能dind符号循环Loop=new Loop(); 符号:类循环位置:类Triton trion.java:20:错误:找不到符号循环循环=新循环();sybmol:类循环位置:类Triton

  • 问题内容: 我有一个很小的数据保存在Redis中,并且以下数据按预期运行,这使我可以下载所有密钥。 有什么方法可以获取键值* 问题答案: 没有命令,但是您可以编写脚本来实现。 您将需要为每个键执行一个“类型”命令: 并根据响应执行: 对于“字符串”: 对于“哈希”: 对于“列表”: 对于“设置”: 对于“ zset”: 请记住,对于散列和排序集,您将获得键/分数和值。

  • $ gdb -q `which gdb` Reading symbols from /home/xmj/install/binutils-gdb-git/bin/gdb...done. (gdb) r -q Starting program: /home/xmj/install/binutils-gdb-git/bin/gdb -q [Thread debugging using libthrea

  • 好吧,我是新来的Java,并试图从命令提示符运行一个java程序(因为Sublime编译和运行它的小东西,但不允许用户输入和东西)。 我将命令提示符设置为我有我的文件的文件夹,称为Learner.java. 我在环境变量中为JDK bin设置了一个路径,并创建了一个JAVA_HOME变量,其中包含JDK bin的值(其他一些帖子建议)。 在我讨论这个问题之前,这是我的代码: 如你所见,这是一个以“

  • 问题内容: 假设我们通常通过 我们如何在linux命令提示符下执行相同的操作? 但是如何传递$ _GET变量呢?也许像php -e index.php –a 1 –b 2 –c 3之类的东西?怀疑会起作用。 谢谢! 问题答案: 通常,为了将参数传递给命令行脚本,您将使用全局变量或getopt: $ _GET引用HTTP GET方法参数,该参数在命令行中不可用,因为它们需要Web服务器来填充。 如果

  • 请问如何在 命令提示符 中使用 fnm? 准寻官网里面的 autorun 设置 往 fnm_init.cmd 添加 然后 在注册表添加 autorun 字符串 结果卡住了不能用