我有以下问题:我正在尝试执行usConstitution wordcram示例(后接代码),如果按原样在eclipse中执行该代码,则将启动applet,并创建单词cloud。 (代码如下)

import processing.core.*;
//import processing.xml.*;

import wordcram.*;
import wordcram.text.*;

import java.applet.*;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.event.MouseEvent;
import java.awt.event.KeyEvent;
import java.awt.event.FocusEvent;
import java.awt.Image;
import java.io.*;
import java.net.*;
import java.text.*;
import java.util.*;
import java.util.zip.*;
import java.util.regex.*;

public class usConstitution extends PApplet {

/*
US Constitution text from http://www.usconstitution.net/const.txt
Liberation Serif font from RedHat: https://www.redhat.com/promo/fonts/
*/

WordCram wordCram;

public void setup() {
  size(800, 600);
  background(255);
  colorMode(HSB);

  initWordCram();
}

public void initWordCram() {
  wordCram = new WordCram(this)
      .fromTextFile("http://www.usconstitution.net/const.txt")
      .withFont(createFont("https://www.redhat.com/promo/fonts/", 1))
      .sizedByWeight(10, 90)
      .withColors(color(0, 250, 200), color(30), color(170, 230, 200));
}

public void draw() {
  if (wordCram.hasMore()) {
    wordCram.drawNext();
  }
}

public void mouseClicked() {
  background(255);
  initWordCram();
}

    static public void main(String args[]) {
        PApplet.main(new String[] { "--bgcolor=#ECE9D8", "usConstitution" });
    }
}


我的问题如下:

我想通过main(这是唯一的静态类)一个参数,以便从另一个提供我想要的有效文件名的类中调用usConstitution.class,以产生其词云。那我该怎么做呢?我尝试调用usConstitution.main来提供一些参数,但是当我尝试简单地打印刚刚传递给main的字符串(只是检查是否传递)时,屏幕上什么也没有。所以问题是我如何在此代码中传递参数以自定义initWordCram中的.fromTextFile?

万分感谢!

最佳答案

来自:https://wordcram.wordpress.com/2010/09/09/get-acquainted-with-wordcram/

丹尼尔·伯尼尔(Daniel Bernier)说:
2013年6月11日,上午1:13

您无法将命令行参数直接传递给WordCram,因为它没有可执行文件。

但是您可以制作一个可执行的包装器(基于WordCram附带的IDE示例),并且它可以读取命令行参数并将它们根据需要传递给WordCram。

仅供参考,它仍然会在某个地方弹出Applet – AFAIK,您无法真正运行“无头处理”。但这通常只是一个问题,如果您尝试在服务器上运行。

10-04 14:19