logo资料库

Eclipse搭建JAVA,PYTHON,Neo4j开发平台.docx

第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
资料共10页,剩余部分请下载后查看
一、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,
分享到:
收藏