Shell 重定向和管道
我是一名java初学者,正在学习普林斯顿大学提供的算法课程。我被困在第1章第40页的重定向和管道上 我使用notepad++和nppexec来运行java,我的execute编写为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
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
遗憾的是,要编译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)”…我将完成我的问题。谢谢你指出这一点。我将完成我的问题。谢谢你指出这一点。