Peersim笔记- example1的运行【命令行+eclipse】

1 google之,down then

2 环境:虚拟机vb:ubuntu上

3 安装Eclipse:apt-get install eclipse

4 如何测试Peersim的配置实例,以 config-example1.txt为例,两种方式:

  • 命令行
  • Eclipse可视环境

5 命令行:

mean@mean-VirtualBox:~/桌面/shared/peersim/peersim-1.0.5$ java -cp peersim-1.0.5.jar:jep-2.3.0.jar:djep-1.0.0.jar peersim.Simulator example/config-example1.txt

其中要注意的几点:

[1] 我不太清楚windows下cmd中使用类似命令的时候jar包之间用什么符号链接,但是在linux(ubuntu)下,jar包之间不能用分号";",而必须用冒号":"。

[2] 此命令需运行在peersim-1.0.5的根目录下。

[3] –cp 后面可以只跟这三个包,包括后面eclispe可视化环境下配置classpath时也是这样,原始peersim-1.0.5下有四个包:peersim-1.0.5.jar,jep-2.3.0.jar,djep-1.0.0.jar,peersim-doclet.jar(这个运行example时可以不要,但肯定有其自己作用)

运行界面:


如果cp配置不好,一个常见错误

***********

mean@mean-VirtualBox:~/桌面/shared/peersim/peersim-1.0.5$ java -Djava.ext.dirs=lib peersim.Simulator example/config-example1.txt

Simulator: loading configuration

ConfigProperties: File example/config-example1.txt loaded.

Simulator: starting experiment 0 invoking peersim.cdsim.CDSimulator

Random seed: 1234567890

 

CDSimulator: resetting

Network: no node defined, using GeneralNode

peersim.config.IllegalParameterException: Parameter "protocol.lnk": Class IdleProtocol not found

At peersim.config.ConfigContainer.getClazz:606

所以一定要保证cp是ok的。

6 eclipse可视化环境下:

此部分参考了【http://hi.baidu.com/bookpage/blog/item/1bc32a341a8f46bbd0a2d3c6.html

大致步骤如下:

  • 新建一个java工程,可以取名为PeerSim
  • 将下载的文件中的src中的文件拷贝到项目的src目录中
  • 拷贝config-example1.txt到项目目录 (由于以后可能有很多配置,建议建一个自己定义的example文件夹,以后都拷贝到这里)
  • 在eclipse中刷新,找到config-example1.txt点击右键run as --- run configrations
  • 新建一个java application。Main Class 中选择peersim.Simulator,arguments 中填写joExample/config-example1.txt (根据自己项目中的位置改写)
  • 运行后出现错误提示 (这是作者的原文,我当时出的错其实是上面命令行中提到的错误,同样通过配置classpath解决,注意classpath也不能重复,反而不能正常运行)
  • CDSimulator: resetting Network: no node defined, using GeneralNode peersim.config.IllegalParameterException: Parameter "protocol.lnk": The class peersim.core.IdleProtocol appears more than once in the classpath; please check your classpath to avoid duplications. At peersim.config.ConfigContainer.getClazz:582 解决方法: 在配置config文件 的时候,指定classpath (参看下面第二图)

    配置图:

    【要注意此图中,arguments中的program arguments默认是没有空可以填写的,需要点击左上角的"新建"符号,才可以填入】

    运行图:

可以看到,运行成功。

你可能感兴趣的:(Academic,P2P,Linux)