一、Java 部分安装
1. 安装 java 的 jdk,在关网下载 JDK,就会先安装 JDK 再安装 JRE。注意安装时候分两个文
件加…/java/jdk,…/java/jre。
2. 环境变量配置:
1) 新建系统环境变量,命名为:JAVA_HOME,然后路径指向…/java/jdk,如 C:\Program
2)
Files\Java\jdk1.8.0_60
Path 变量更改;在后面加上
;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
3) 新建 CLASSPATY 变量
;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
3. 测试:java,javac,java –version
其中注意 javac 一定要有
简单做个测试,用文本文件建立一个 HelloJava.java,然后再在 cmd 下进入该文件位置,
1) 输入 javac HelloJava
2) 得到一个 HelloJava.class 文件,然后再 java HelloJava
文本文件内容
public class HelloJava{
public static void main(String[] args){
System.out.println("Hello World");
}
}
4. 安装 Eclipse 作为集成开发环境,下载版本是 for java developer
二、Python 安装
1. 先下载 Python 的合适版本,此处用的是 2.7 因为稳定,模块兼容性能好。如果是 windows
开发环境,选择.msi 后缀名。python-2.7.3.msi
2. 再 在 Help 菜 单 栏 目 选 择 Install New Software 。 Add 加 上 : pydev 插 件 的 官 方 网 站 :
http://www.pydev.org/
3. 安装完毕后配置
在 Window>>Preferences 的 Pydev 中点击 Interpreter->Python 点击 New 按钮,选择安装
Python 的路径即可
4. 测试:新建一个 PyDev
5. 再新建一个 PvDev Package
6. 输入包名 Test1
三、安装 Numpy,Matlablib,Scipy
下载地址:
http://matplotlib.org/
http://sourceforge.net/projects/numpy/files/NumPy/
http://sourceforge.net/projects/scipy/files/scipy/
安装时候容易出现的问题:
1. 提示缺少:模块 SIX
把路径如:C:\Python27\Lib\site-packages\scipy\lib 中的 six.py six.pyc six.pyo 三个文件拷
2.
贝到 C:\Python27\Lib\site-packages 目录下。
ImportError: matplotlib requires dateutil
下载 setuptools
下载后可以在 cmd 中输入:
easy_install 模块名称
但 有 时 候 找 不 到 就 需 要 手 动 去 找 : 寻 找 网 站 :
http://www.lfd.uci.edu/~gohlke/pythonlibs/
3. 手动下载得到的需要用 pin intall 安装。
1) 首先要用 easy_intall pin 来安装 pip
2) 再定位到../python27/Scripts 文件夹下,再输入 pip install ../xxx.whl 文件。
3) 例如这里缺失的是
i.
ii.
python_dateutil-2.4.2-py2.py3-none-any.whl
pyparsing-2.0.3-py2-none-any.whl
4. 测试:在 python 中输入 import matplotlib 就可以了。
安装 Neo4j。
四、
1. 下载的是 http://www.neo4j.org.cn/downloads/ 提供的稳定版本的高级 Advanced 1.8 版
本。
2. 安装,在 CMD 中进入安装包 D:\Program Files\neo4j\bin 下键入 Neo4j.bat install
由于其没有直接安装包中间存在两个问题:
1) 在键入 Neo4j.bat install 后出现 windows-service-wrapper-4.jar 这个文件无法解析:
解决方法 base.bat 文件中 set wrapperJarFilename=windows-service-wrapper-*.jar 改
为 set wrapperJarFilename=windows-service-wrapper-4.jar
2) 再继续安装时候出现:开启服务失败
解决方法:输入 Neo4j.bat install console ,即可以开启服务了
3. 测试安装 http://localhost:7474
自动进入 http://localhost:7474/webadmin/
Neo4j 的图形管理界面
4. 使用 neoclipse 可以可视化 数据库。
如何在 Eclipse 中通过 JAVA 连接 Neo4j。
五、
1. 安装 Maven 插件,
1) 在官网下载 Bin 文件 http://maven.apache.org/download.cgi,
2) 然后添加环境变量。先设置 Maven 的存放目录为 MAVEN_HOME,
3) 然后添加系统 Path 变量加入;%MAVEN_HOME\bin,
4) 测试在 cmd 下使用 mvn –n。
5) 配 置 成 功 后 开 始 在 Eclipse 中 配 置 Maven , 点 击 eclipse 菜 单 栏 :Help->Eclipse
Marketplace 搜索关键字 maven 到插件 Maven Integration for Eclipse 并点击安装即
可
2. 新建一个 maven 项目,然后在 pom.xml 文档中 Dependences 里面加入标签红色部分
junit
junit
3.8.1
test
org.neo4j
neo4j
1.8
3. 打开 neoclipse 可以将数据库可视化
4. 测试代码:
package com.mycompany.neo;
import java.io.File;
import java.io.IOException;
import org.neo4j.graphdb.Direction;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.graphdb.Node;
import org.neo4j.graphdb.Path;
import org.neo4j.graphdb.Relationship;
import org.neo4j.graphdb.RelationshipType;
import org.neo4j.graphdb.factory.GraphDatabaseFactory;
import org.neo4j.graphdb.Transaction;
import org.neo4j.graphdb.index.Index;
import org.neo4j.graphdb.traversal.Evaluators;
import org.neo4j.graphdb.traversal.Traverser;
import org.neo4j.graphdb.traversal.TraversalDescription;
import org.neo4j.kernel.Traversal;
import org.neo4j.kernel.impl.util.FileUtils;
import org.neo4j.kernel.impl.util.StringLogger;
import org.neo4j.cypher.ExecutionEngine;
import org.neo4j.cypher.ExecutionResult;
import org.neo4j.graphalgo.PathFinder;
import org.neo4j.graphalgo.GraphAlgoFactory;
public class Example {
// private static final String DB_PATH = "target/neo4jexample";
private static final String DB_PATH = "testgraph.db";
private static final String PRIMARY_KEY = "name";
private GraphDatabaseService graphDB;
private Index nodeIndex;
private long startNodeId;
private static enum RelTypes implements RelationshipType {
NEO_NODE,
KNOWS,
CODED_BY
}
private void clearDB() {
try {
FileUtils.deleteRecursively(new File(DB_PATH));
}
catch(IOException e) {
throw new RuntimeException(e);
}
}
public void createDB() {
clearDB();
graphDB = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH);
nodeIndex = graphDB.index().forNodes("nodes");
registerShutdownHook(graphDB);
Transaction tx = graphDB.beginTx();
try {
Node startNode = graphDB.createNode();
startNodeId = startNode.getId();
Node thomas = graphDB.createNode();
thomas.setProperty( "name", "Thomas Anderson" );
thomas.setProperty( "age", 29 );
nodeIndex.add(thomas, PRIMARY_KEY, thomas.getProperty("name"));
startNode.createRelationshipTo( thomas, RelTypes.NEO_NODE );
Node trinity = graphDB.createNode();
trinity.setProperty( "name", "Trinity" );
nodeIndex.add(trinity, PRIMARY_KEY, trinity.getProperty("name"));
Relationship rel = thomas.createRelationshipTo( trinity,
RelTypes.KNOWS );
rel.setProperty( "age", "3 days" );
Node morpheus = graphDB.createNode();
morpheus.setProperty( "name", "Morpheus" );
morpheus.setProperty( "rank", "Captain" );
morpheus.setProperty( "occupation", "Total badass" );
nodeIndex.add(morpheus, PRIMARY_KEY,
morpheus.getProperty("name"));
thomas.createRelationshipTo( morpheus, RelTypes.KNOWS );
rel = morpheus.createRelationshipTo( trinity, RelTypes.KNOWS );
rel.setProperty( "age", "12 years" );
Node cypher = graphDB.createNode();
cypher.setProperty( "name", "Cypher" );
cypher.setProperty( "last name", "Reagan" );
nodeIndex.add(cypher, PRIMARY_KEY, cypher.getProperty("name"));
trinity.createRelationshipTo( cypher, RelTypes.KNOWS );
rel = morpheus.createRelationshipTo( cypher, RelTypes.KNOWS );
rel.setProperty( "disclosure", "public" );
Node smith = graphDB.createNode();
smith.setProperty( "name", "Agent Smith" );
smith.setProperty( "version", "1.0b" );
smith.setProperty( "language", "C++" );
nodeIndex.add(smith, PRIMARY_KEY, smith.getProperty("name"));
rel = cypher.createRelationshipTo( smith, RelTypes.KNOWS );
rel.setProperty( "disclosure", "secret" );
rel.setProperty( "age", "6 months" );
Node architect = graphDB.createNode();
architect.setProperty( "name", "The Architect" );
nodeIndex.add(architect, PRIMARY_KEY,
architect.getProperty("name"));
smith.createRelationshipTo( architect, RelTypes.CODED_BY );
tx.success();
}
finally {
tx.finish();
}
}
//
//
//
public Traverser getFriends(final Node person) {
TraversalDescription td = Traversal.description()
.breadthFirst()
.relationships(RelTypes.KNOWS, Direction.OUTGOING)
.evaluator(Evaluators.excludeStartPosition());
return td.traverse(person);
}
public void printNodeFriends(Node node) {
Node neo = graphDB.getNodeById(startNodeId)
.getSingleRelationship(RelTypes.NEO_NODE, Direction.OUTGOING)
.getEndNode();
int friendsNumbers = 0;
System.out.println(node.getProperty(PRIMARY_KEY) + "'s friends:");
for(Path friendPath: getFriends(node)) {
System.out.println("At depth " + friendPath.length() + " => "
+ friendPath.endNode().getProperty(PRIMARY_KEY));
friendsNumbers++;
}
System.out.println("Number of friends found: " + friendsNumbers);
}
// public void printCypherFriends(String name) {
//
//
StringLogger.logger(DB_PATH));
graphDB = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH);
ExecutionEngine engine = new ExecutionEngine(graphDB,