Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell 重定向和管道_Shell_Command Line_Terminal_Console - Fatal编程技术网

Shell 重定向和管道

Shell 重定向和管道,shell,command-line,terminal,console,Shell,Command Line,Terminal,Console,我是一名java初学者,正在学习普林斯顿大学提供的算法课程。我被困在第1章第40页的重定向和管道上 我使用notepad++和nppexec来运行java,我的execute编写为 NPP_SAVE javac -encoding UTF-8 "$(FULL_CURRENT_PATH)" echo echo ==========编译成功后开始运行========== java -cp "$(CURRENT_DIRECTORY);D:\Program Files\java\jdk\lib\alg

我是一名java初学者,正在学习普林斯顿大学提供的算法课程。我被困在第1章第40页的重定向和管道上

我使用notepad++和nppexec来运行java,我的execute编写为

NPP_SAVE
javac -encoding UTF-8 "$(FULL_CURRENT_PATH)"
echo
echo ==========编译成功后开始运行========== 
java -cp "$(CURRENT_DIRECTORY);D:\Program Files\java\jdk\lib\algs4.jar" "$(NAME_PART)" 
但是,当我使用重定向符号>和<时,例如

NPP_SAVE
javac -encoding UTF-8 "$(FULL_CURRENT_PATH)"
echo
echo ==========编译成功后开始运行========== 
java -cp "$(CURRENT_DIRECTORY);D:\Program Files\java\jdk\lib\algs4.jar" "$(NAME_PART)" largeW.txt < largeT.txt
NPP\u保存
javac-编码UTF-8“$(完整当前路径)”
回声
回音==========编译成功后开始运行========== 
java-cp“$(当前目录);D:\Program Files\java\jdk\lib\algs4.jar”“$(名称部分)”largeW.txt
这个程序不起作用。所以我认为symbol>和<可以用在cmd中,我想知道如何用nppexec重定向

任何建议都是有用的。多谢各位


此示例摘自第9页的书:

import edu.princeton.cs.algs4.*;
import java.util.*;

public class BinarySearch 
{
    public static int rank(int key, int[] a)
    {
       int lo = 0;
       int hi = a.length - 1;
       while (lo <= hi)
       {
            int mid = lo + (hi - lo) / 2;
            if      (key < a[mid]) hi = mid - 1;
            else if (key > a[mid]) lo = mid + 1;
            else return mid;
       }
       return -1;
    }

   public static void main(String[] args) 
   {
        In in = new In("G:\\java\\1.1\\binarysearch\\BinarySearch.txt");
        int[] whitelist = in.readAllInts();
        Arrays.sort(whitelist);

       while (!StdIn.isEmpty()) 
       {
            int key = StdIn.readInt();            
            if (BinarySearch.rank(key, whitelist)!= -1)              StdOut.println("here it is\n");
           else                                             StdOut.println("where it is\n");
       }
    }
  }
import-edu.princeton.cs.algs4.*;
导入java.util.*;
公共类二进制搜索
{
公共静态整数秩(整数键,整数[]a)
{
int-lo=0;
int hi=a.长度-1;
而(lo a[mid])lo=mid+1;
否则返回中间;
}
返回-1;
}
公共静态void main(字符串[]args)
{
In=new-In(“G:\\java\\1.1\\binarysearch\\binarysearch.txt”);
int[]白名单=in.readAllings();
排序(白名单);
而(!StdIn.isEmpty())
{
int key=StdIn.readInt();
if(BinarySearch.rank(key,whitelist)!=-1)StdOut.println(“在这里\n”);
else StdOut.println(“它在哪里\n”);
}
}
}
nppexec的执行是

NPP_SAVE
javac -encoding UTF-8 "$(FULL_CURRENT_PATH)"
echo
echo ==========编译成功后开始运行========== 
java -cp "$(CURRENT_DIRECTORY);D:\Program Files\java\jdk\lib\algs4.jar" "$(NAME_PART)" largeW.txt < largeT.txt
NPP\u保存
javac-编码UTF-8“$(完整当前路径)”
回声
回音==========编译成功后开始运行========== 
java-cp“$(当前目录);D:\Program Files\java\jdk\lib\algs4.jar”“$(名称部分)”largeW.txt
largeW.txt和largeT.txt中有一些整数


但是,这个execute不会读取两个txt。

是否可以直接从cmd运行它而不使用nppexec?
要编译javac.java并运行它,java可以直接从cmd运行它,而不使用nppexec?
遗憾的是,要编译javac.java并运行它,您并没有准确地说出您想要做什么

您所编写的应该为程序
java
提供来自文件
data.txt
的输入。很可能,
java
会忽略输入,因为它从其余参数中获得了所需的所有信息


如果您想提供
data.txt
作为java程序的输入,那么请尝试使用
^遗憾的是,您没有准确地说明您正在尝试做什么

您所编写的应该为程序
java
提供来自文件
data.txt
的输入。很可能,
java
会忽略输入,因为它从其余参数中获得了所需的所有信息


如果您想将
data.txt
作为java程序的输入,请尝试使用
^实际上我已经使用cmd来运行重定向,例如,没有问题。我在想如何使用nppexec来实现这个…@redFIVE e。。。我不知道你是什么意思。。。我认为命令行在“$(NAME_PART)”…实际上我已经使用cmd来运行重定向,比如<和>,并且没有问题。我在想如何使用nppexec来实现这个…@redFIVE e。。。我不知道你是什么意思。。。我想命令行在“$(NAME_PART)”…我将完成我的问题。谢谢你指出这一点。我将完成我的问题。谢谢你指出这一点。