小弟我写了1段代码..可以在命令环境下用 java Test <aa.txt这种方式读取文本
但是如何在ECLIPSE里+这段参数呢..希望大家帮帮我..谢谢了

解决方案 »

  1.   

    在eclipse運行那里配置一下變量就行了。右鍵 要運行的java文件,然後選最下面那個(記得是)
      

  2.   

    在该类中右键点击,run as--> run..,出现的对话框中点到arguments,在program arguments区域输入参数(如aa.txt),点击run,就可以了
      

  3.   

    谢谢了。
    但是。。我在program   arguments区域输入参数却没有效果
    我输入的是java Test <aa.txt
      

  4.   

    只有在命令行状态下输入java Test <aa.txt才可以
      

  5.   

    还是不行。。还是只有在命令行状态下输入java   Test   <aa.txt才可以
    是1个变换文本的代码,随机过程
      

  6.   

    那在上面的变量哪里输入 <aa.txt 行吗?
      

  7.   

    找到要运行的类 
    右键-->run as-->run...
    出现画面如9楼
      

  8.   

    在运行的类右键-->Run As-->Open Run Dialog-->Arguments
      

  9.   

    代码附上
    import java.io.*;
    import java.util.*;class Chain {
    static final int NPREF = 2; // size of prefix
    static final String NONWORD = "\n";
    // "word" that can't appear'
    Hashtable statetab = new Hashtable(); 
    // key = Prefix, value = suffix Vector
    Prefix prefix = new Prefix(NPREF, NONWORD);
    // initial prefix
    Random rand = new Random();// Chain build: build State table from input stream
    void build(InputStream in) throws IOException
    {
    //StreamTokenizer st = new StreamTokenizer(in);


    Reader r = new BufferedReader(new InputStreamReader(in));
    StreamTokenizer st = new StreamTokenizer(r);
     

    st.resetSyntax();                     // remove default rules
    st.wordChars(0, Character.MAX_VALUE); // turn on all chars
    st.whitespaceChars(0, ' ');           // except up to blank
    while (st.nextToken() != st.TT_EOF)
    add(st.sval);
    add(NONWORD);
    }// Chain add: add word to suffix list, update prefix
    void add(String word)
    {
    Vector suf = (Vector) statetab.get(prefix);
    if (suf == null) {
    suf = new Vector();
    statetab.put(new Prefix(prefix), suf);
    }
    suf.addElement(word);
    prefix.pref.removeElementAt(0);
    prefix.pref.addElement(word);
    }// Chain generate: generate output words
    void generate(int nwords)
    {
    prefix = new Prefix(NPREF, NONWORD);
    for (int i = 0; i < nwords; i++) {
    Vector s = (Vector) statetab.get(prefix);
    if (s == null) {
    System.err.println("Markov: internal error: no state");
    System.exit(1);
    }
    int r = Math.abs(rand.nextInt()) % s.size();
    String suf = (String) s.elementAt(r);
    if (suf.equals(NONWORD))
    break;
    System.out.println(suf);
    prefix.pref.removeElementAt(0);
    prefix.pref.addElement(suf);
    }
    }
    }class Prefix {
    public Vector pref; // NPREF adjacent words from input
    static final int MULTIPLIER = 31; // for hashCode()// Prefix constructor: duplicate existing prefix
    Prefix(Prefix p)
    {
    pref = (Vector) p.pref.clone();
    }// Prefix constructor: n copies of str
    Prefix(int n, String str)
    {
    pref = new Vector();
    for (int i = 0; i < n; i++)
    pref.addElement(str);
    }// Prefix hashCode: generate hash from all prefix words
    public int hashCode()
    {
    int h = 0; for (int i = 0; i < pref.size(); i++)
    h = MULTIPLIER * h + pref.elementAt(i).hashCode();
    return h;
    }// Prefix equals: compare two prefixes for equal words
    public boolean equals(Object o)
    {
    Prefix p = (Prefix) o; for (int i = 0; i < pref.size(); i++)
    if (!pref.elementAt(i).equals(p.pref.elementAt(i)))
    return false;
    return true;
    }}class Markov {
    static final int MAXGEN = 10000; // maximum words generated
    public static void main(String[] args) throws IOException
    {
    Chain chain = new Chain();
    int nwords = MAXGEN;
    chain.build(System.in);
    chain.generate(nwords);
    }
    }
      

  10.   

    java   Markov   <aa.txt
    在命令行里这样就可以运行。当然。。你目录下有aa.txt
    希望各位帮帮忙
      

  11.   

    主要是eclipse对输入/输出重定向过了,不支持dos下的重定向指令建议修改为//eclipse下运行代码 eclipse里参数仍然设置为 <aa.txt,假设aa.txt和Chain.java位于同一目录下
    chain.build(chain.getClass().getResourceAsStream(args[0].substring(1)));
      

  12.   

    像redduke1202 那样是正确的。。修改代码后eclipse里参数仍然设置为 <aa.txt就可以了