Windows 下 Emacs + Erlang 开发环境的配置

Windows 下 Emacs + Erlang 开发环境的配置
作者:FlyingHail 发布时间:February 17, 2011 分类:Erlang
最近在寻找好的 Erlang IDE...抛开那些一般的文本编辑器,目前已知的就是:
Erlide - Eclipse 插件,试用 0.10 beta 最大的问题是对 UTF-8 的支持,代码中写入中文高亮就乱掉了,注释中写中文关闭之后打开会报错,无法打开
Erlybird - Netbeans 插件,支持NB6.7,不支持6.9,而且试了一下6.7,启动报错,新建 erlang 应用囧住了...下一步总是灰的
Emacs Erlang mode -功能比较全面,不过因为是 *NIX 的东西,上手难度大一些,操作需要熟悉和适应
最后唯一的选择就是 Emacs 了,其他实在 Ungelievable....
首先进行下载&安装:
Erlang OTP 最新版的 Windows binary :/download.html
EmacsW32 选择 Download latest EmacsW32+Emacs patched :
/cgi-bin/emacsw32-dl-latest.pl Distel 下载最新的包:https:///massemanet/distel
Erlang OTP 和 EmacsW32 按照安装程序装就好了,Distel 随便找个地方解压,自己规划路径吧
安装好EmacsW32,先运行,启动进去,点击首页的 Customize Startup 并保存,这是为了生成 Emacs 的自定义配置文件 .emacs ,后面配置会用到它
.emacs 的路径:
XP 下:系统盘符(一般是C ):\Documents and Settings\你的用户名\Application Data\.emacs Vista&7:系统盘符(一般是C ):\Users\你的用户名\AppData\Roaming\.emacs
一、配置 Erlang mode + distel :
参考:http://bc.tech.coop/blog/070528.html
添加以下内容到 .emacs 文件,注意修改里面的那些路径,注意路径里面不要用\,全部写/: ?
1 2 3 4 5 6 7 8 9 10 ;; Erlang mode
(setq load-path (cons "<Erlang OTP 安装路径>/lib/tools-<版本号>/emacs"
load-path))
(setq erlang-root-dir "<Erlang OTP 安装路径>")
(setq exec-path (cons "<Erlang OTP 安装路径>/bin" exec-path))
(require 'erlang-start)
;; This is needed for Distel setup
(let ((distel-dir "<Distel 解压位置的路径>/elisp"))
(unless (member distel-dir load-path)
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
;; Add distel-dir to the end of load-path
(setq load-path (append load-path (list distel-dir)))))
(require 'distel)
(distel-setup)
;; Some Erlang customizations
(add-hook 'erlang-mode-hook
(lambda ()
;; when starting an Erlang shell in Emacs, default in the node name
(setq inferior-erlang-machine-options '("-sname" "emacs"))
;; add Erlang functions to an imenu menu
(imenu-add-to-menubar "imenu")))
;; A number of the erlang-extended-mode key bindings are useful in the shell too
(defconst distel-shell-keys
'(("\C-\M-i" erl-complete)
("\M-?" erl-complete)
("\M-." erl-find-source-under-point)
("\M-," erl-find-source-unwind)
("\M-*" erl-find-source-unwind)
)
"Additional keys to bind when in Erlang shell.")
(add-hook 'erlang-shell-mode-hook
(lambda ()
;; add some Distel bindings to the Erlang shell
(dolist (spec distel-shell-keys)
(define-key erlang-shell-mode-map (car spec) (cadr spec))))
Distel 设置断点可能会有问题,需要注释掉 <Distel 路径>/elisp/edb.el 的两行代码: ?
1 2 3
;; (unless (edb-module-interpreted-p module) ;; (error "Module is not interpreted, can't set breakpoints."))
二、给 Emacs 增加行号:
编辑 .emacs 添加配置: ?
1 2 3
(require 'linum) (global-linum-mode 1)
三、autocomplete
下载 auto-complete :/software/auto-complete/#Latest_Stable
随便解压个什么地方
打开 Emacs ,输入 M-x load-file RET <Autocomplete 解压路径>/etc/install.el RET
如果你没有改 Emacs 什么设置的话,这个操作是这样:Alt + x ,注意窗口最下面一行会有一个黄底的 M-x 突出显示出来,并且光标会自动移到 M-x 后面,输入load-file ,回车,输入 <Autocomplete 解压路径>/etc/install.el 回车
接着是输入安装路径,默认是 ~/.emacs.d ,也不用改了..直接回车吧
.emcs.d 目录和 .emacs 文件是在同一路径下
编辑 .emacs 添加: ?
1 2 3 4 5 6 7 8 9 10 11
(add-hook 'erlang-shell-mode-hook (lambda () ;; add some Distel bindings to the Erlang shell (dolist (spec distel-shell-keys) (define-key erlang-shell-mode-map (car spec) (cadr spec))))) (add-to-list 'load-path "~/.emacs.d/") (require 'auto-complete-config) (add-to-list 'ac-dictionary-directories "~/.emacs.d//ac-dict") (ac-config-default)
四、eflymake
下载最新的 Flymake :/projects/flymake/
将 .el 文件解压到 ~/.emacs.d/ 下,注意别带路径过去
编辑 .emacs 添加: ?
1 2
(require 'erlang-flymake)
这个配置可能还有问题,等着再测试看看
五、yasnippet
下载最新的 yasnippet-bundle :/p/yasnippet/
把 yasnippet-bundle.el 解压到 ~/.emacs.d/
编辑.emacs 添加:
?
1
(require 'yasnippet-bundle)
2
这样开发环境基本差不多了,以后需要继续添加/修改。

合集下载

windows10下emacs各种使用方法

windows10下emacs各种使用方法

windows10下emacs各种使⽤⽅法直接使⽤emacsemacs有windows版本,可以直接使⽤。

但存在以下问題⽆相关⼯具集,如gcc等,配置困难windows进程创建效率较低,⽽部分插件运⾏时需要创建若⼲进程,如magit执⾏git status等操作,运⾏很慢通过mingw64安装使⽤emacsmsys2软件包提供mingw64/mingw32环境,其中mingw64下⾃带emacs。

此版本就是上述emacs的windows版。

mingw64/msys2可提供较完善的⼯具集,但因windows进程创建效率导致的问题仍然存在通过cygwin安装使⽤emacs⼯具集较msys2更完善,更接近Linux,但存在下列问題需要x11-server,⽽Cygwin下x11-server在win10下有性能问题,图形界⾯对操作响应较慢git等⼯具由cygwin封装⼀次,再调⽤windows API处理,⽐直接在windows上执⾏git还慢通过linux⼦系统安装使⽤emacswindows10下linux⼦系统提供了较完善的Linux环境,但仍然有以下问题需要x11转发,⽽常见windows版x11-server在windows10下有性能问题,导致图形界⾯对操作响应较慢linux⼦系统磁盘IO性能很差,导致Linux下执⾏IO相关命令耗时很⼤,git status等命令对较⼤仓库耗时可接近半分钟linux⼦系统对tmpfs等通常挂载于内存的⽂件系统均挂载在磁盘上,在tmpfs下快速创建临时⽂件等操作严重受制于IO性能通过x11转发远程连接linux使⽤emacs常见windows版x11服务器有xming,xvcsrv,cygwinX,但这些x11-server在windows10下均有性能问题,图形界⾯响应较慢通过x410服务器及x2go⼯具远程连接linux使⽤emacsx410是专门对windows10优化后windows版x11-server,在windows应⽤商店有售。

Windows11配置指南(golang开发者)

Windows11配置指南(golang开发者)

Windows11配置指南(golang开发者)1. 前⾔将windows作为开放环境,对于开发⼈员并不友好(⾄少对于我这总习惯在unix下开发的⼈来说),其难⽤的powershell,让⼈很头疼,不过幸运的是Windows 提供了WSL2,可以运⾏linux⼦系统。

倘若能够⽤WSL作为开发环境,宿主Windows⽤作办公环境,就可以弥补只⽤linux作为主⼒环境下⼀些软件⽣态不⾜的缺点(有钱直接上mac)。

这篇⽂章就是为那些,⽤windows下WSL2作为开发环境的⼈员提供的。

注意:开始前请确保你的系统⽀持wsl2对于 x64 系统:版本 1903 或更⾼版本,采⽤内部版本 18362 或更⾼版本。

对于 ARM64 系统:版本 2004 或更⾼版本,采⽤内部版本 19041 或更⾼版本。

低于 18362 的版本不⽀持 WSL 2。

2. 宿主机Windows的配置以下所涉及的所有命令均使⽤管理员⾝份运⾏(“开始”菜单 >“PowerShell”> 单击右键 >“以管理员⾝份运⾏”)1. 启⽤WSLdism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart2. 启⽤虚拟机功能安装 WSL 2 之前,必须启⽤“虚拟机平台”可选功能。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart重启计算机3. 下载 Linux 内核更新包下载最新包运⾏上⼀步中下载的更新包。

(双击以运⾏ - 系统将提⽰你提供提升的权限,选择“是”以批准此安装。

)4. 将 WSL 2 设置为默认版本wsl --set-default-version 25. 安装所选的 Linux 分发打开选择⼀款Linux发⾏版(本教程使⽤Ubuntu)⾸次启动新安装的 Linux 分发版时,将打开⼀个控制台窗⼝,系统会要求你等待⼀分钟或两分钟,以便⽂件解压缩并存储到电脑上。

erlang windows 编译

erlang windows 编译

erlang windows 编译摘要:一、引言二、Erlang 在Windows 平台上的编译方法1.安装Visual Studio 和Erlang2.配置环境变量3.使用cmake 进行编译三、总结正文:一、引言Erlang 是一种面向并发编程的编程语言,广泛应用于分布式系统、云计算等领域。

在Erlang 的官方文档中,提供了在各种操作系统上编译和安装的指南。

本文将介绍如何在Windows 平台上编译Erlang。

二、Erlang 在Windows 平台上的编译方法1.安装Visual Studio 和Erlang在Windows 平台上编译Erlang,首先需要安装Visual Studio。

可以从微软官网下载Visual Studio Community 版本,该版本免费且功能齐全。

同时,需要安装Erlang,可以从Erlang 官方下载最新版本的源代码。

2.配置环境变量安装完Visual Studio 和Erlang 之后,需要配置环境变量。

将Erlang 的安装路径添加到系统环境变量中,例如:```Path = C:Program Fileserl-<版本号>bin```3.使用cmake 进行编译在Erlang 源代码的根目录下,创建一个名为“build”的文件夹,并在其中运行以下命令:```cmake ..```接下来,在Visual Studio 中打开“解决方案资源管理器”,找到“build”文件夹下的“erl-<版本号>.sln”文件,双击打开。

在Visual Studio 中选择“生成”菜单,选择“生成解决方案”。

三、总结通过以上步骤,可以在Windows 平台上成功编译Erlang。

需要注意的是,编译过程可能需要一定时间,请耐心等待。

编译完成后,可以在Erlang 安装路径下的“bin”文件夹中找到编译后的Erlang 可执行文件。

在Windows 平台上编译Erlang 虽然步骤较多,但只要按照本文提供的指南进行操作,还是可以顺利完成编译的。

WIN7旗舰版操作系统中浪潮ERP-GS5.2安装说明

WIN7旗舰版操作系统中浪潮ERP-GS5.2安装说明

WIN7旗舰版操作系统安装GS5.2正式版全过程一、系统环境1、操作系统Win7旗舰版2、数据库SQL SERVER2005 SP3(非SP3无法在Win7系统中安装)3、硬件环境请参照《浪潮ERP-GS V5.2安装手册》中硬件建议配置。

二、系统环境安装Win7系统安装过程很多资料都有说明,在此不作详细说明。

下面介绍一下IIS的配置过程。

三、浪潮ERP GS5.0安装请参照《浪潮ERP-GS V5.0.1安装手册》安装完成后,会出现以下问题:异常信息(异常类型:System.Web.Services.Protocols.SoapException)异常信息:System.Web.Services.Protocols.SoapException: 服务器无法处理请求。

---> System.UnauthorizedAccessException: 拒绝访问temp 目录。

用来运行XmlSerializer 的标识“IIS APPPOOL\gs5.0”没有访问temp 目录的足够权限。

CodeDom 将使用进程正在使用的用户帐户进行编译,这样,如果用户没有访问系统temp 目录的权限,将无法进行编译。

使用Path.GetTempPath() API 找到temp 目录的位置。

在pile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)在System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)在System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence)在System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping[] mappings, Evidence evidence)在System.Web.Services.Protocols.SoapServerType..ctor(Type type, WebServiceProtocols protocolsSupported)在System.Web.Services.Protocols.SoapServerProtocol.Initialize()在System.Web.Services.Protocols.ServerProtocol.SetContext(Type type, HttpContext context, HttpRequest request, HttpResponse response)在System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing) --- 内部异常堆栈跟踪的结尾---导致错误的应用程序或对象的名称:System.Web.Services引发当前异常的方法:System.Object[] ReadResponse(System.Web.Services.Protocols.SoapClientMessage, .WebResponse, System.IO.Stream, Boolean)异常相关帮助:堆栈信息:在System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) 在System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)在Genersoft.Platform.AppFramework.WebServiceClient.ApplicationFrameworkWebService.AppFra meworkWebService.GetAppInstanceMessage()在Genersoft.Platform.AppFramework.WebServiceClient.GSPAppFrameworkWebServiceClient.GetAp pInstanceMessage()在UserLogin.LoginForm.GetAppInstanceMessage()在UserLogin.LoginForm.backgroundWorker1_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e)内部异常:{}以上问题解决方法:方法一:出现的原因一般是临时目录的权限不够,解决的办法是给Windows目录下的临时文件夹Temp的安全选项卡中加入NetWork Service用户并赋予全权。

eclipse++cdt+MinGW_开发环境配置——详细说明

eclipse++cdt+MinGW_开发环境配置——详细说明

在用Eclipse编写Java应用程序时,感觉很爽,Eclipse不愧是强大的IDE,不冤枉IBM花看那么多钱和众多开源爱好者的努力(你们辛苦了!!谢谢!!!)。

突发奇想,想玩玩Eclipse 编写C++程序。

一.环境的安装与配置首先,当然必须要做的,就是下载软件和插件。

(1)JDK(jdk6)(2)Eclipse(3.4)(3)CDT插件(cdt-master-5.0.2)(4)MinGW编译器(我用的是MinGW 5.1.6)这些知识网上多的是,不多说了,自己下载安装就好了,我想大家应该都会。

其次就是环境的配置,对于用过Eclipse编写过Java程序的人来说JDK的环境变量配置应该很熟,主要介绍下MinGw的配置。

1.MinGW 5.1.6的安装首先下载,然后双击安装,过程如下:这一步如果你只想用Eclipse编译C++/C程序的话,之选上面三项即可,当然你可以都安装上。

接下来就等着慢慢下载和安装吧,如果你的网速比较快的话,那么你是非常幸运的。

2.MinGW环境变量的设置这个网上介绍的也很多,主要是设置path变量,设置如下MINGW_HOME=D: \MinGWLIBRARY_PATH = %MINGW_HOME%\libC_INCLUDE_PATH = %MINGW_HOME%\includeCPLUS_INCLUDE_PATH= %C_INCLUDE_PATH%\c++\3.4.5;%C_INCLUDE_PATH%\c++\3.4.5\ming w32;%C_INCLUDE_PATH%\c++\3.4.5\backward;%C_INCLUDE_PATH%Path最后加上%MINGW_HOME%\bin这一步根据你安装的路径来定,不要盲目Copy。

然后把D: \MinGW\bin目录下的MinGW32-make.exe复制一份(备份),然后改名为make.exe。

此时你可以再命令控制台下测试make命令,如果出现下图所示的情况则设置成功。

安装与配置windows版maven与常见错误

安装与配置windows版maven与常见错误

安装与配置windows版maven(前提:先安装jdk):1.到下载最新maven3.1.1并解压到D盘,并将解压目录改名为maven32.修改D:¥maven3¥bin¥mvn.bat,看脚本,在设置java.exe前设置JAVA_HOME(找到位置加上:set JAVA_HOME=d:¥jdk7)3.打开命令窗口,输入d:¥maven3¥bin¥mvn --version,就可以看到maven信息.4.输入d:¥maven3¥bin¥mvn help:system,就可以看到下载相关东东到库.默认的库位置在当前用户主目录的.m2目录,按ctrl+c可以终止下载.5.更改本地库到e:/repository,在默认的库位置所在目录C:¥Users¥<USER>¥.m2,把repository删了,然后复制D:¥maven3¥conf的settings.xml到C:¥Users¥<USER>¥.m2,在setting节点加入<localRepository>e:/repository</localRepository>就OK,再次输入d:¥maven3¥bin¥mvn help:system看结果生成项目:d:¥maven3¥bin¥mvn archetype:generate -DinteractiveMode=false-DarchetypeArtifactId=maven-archetype-quickstart -DgroupId=com.test-DartifactId=testjava -Dversion=1.0-SNAPSHOTd:¥maven3¥bin¥mvn archetype:generate -DinteractiveMode=false-DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.test -DartifactId=testweb -Dversion=1.0-SNAPSHOT常见错误:一..在Eclipse导入已存在工作空间的项目,出现情况1:Scanning errors (1):1 Could not read pom.xml就是pom.xml出现了不能解析的配置,把不能解析的配置修改过来.例如去掉<build><finalName>testweb</finalName></build>情况2:No marketplace entries found to handle maven-compiler-plugin:2.3.2:testCompile in Eclipse.将Eclipse内置的Maven换成外部自己安装的Maven,重启Eclipse.然后,在命令行执行mvn clean install再导入项目.二.导入项目后出现:情况1:Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix.在Problems View的出错提示右键选Quick Fix,再按提示确定就OK.或者,右键项目->Mave n->Update Project情况2:JavaServer Faces 2.2 can not be installed : One or more constraints have not been satisfied. JavaServer Faces 2.2 requires Dynamic Web Module 2.5 or newer.先改web.xmlwebapp节点:<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_1.xsd"version="3.1">然后关闭Eclipse,改项目下的.settings¥mon.project.facet.core.xml.将版本改成为3.1,将成后是<installed facet="jst.web" version="3.1"/>,再启动Eclipse.最后出现上面的情况1,按上面更新下配置就OK.三.<addMavenDescriptor>false</addMavenDescriptor>在Eclipse无效,仍然会将pom.xml,pom.properties打包入jar.在CLI(command-line interface)运行命令,此种情况拒绝使用Eclipse来执行命令(当然你测试打包入去没影响)四.启动tomcat报错:java.util.zip.ZipException: invalid LOC header (bad signature),启动jetty报错: java.util.zip.ZipException: invalid distance too far back以上两种错:一般是一个或多个下载的jar不完整.在eclipse的下载经常出现.而直接在cmd好像不会出错....tomcat\会提示是那些类...就可推是那个jar.但jetty可能不会指出是那个jar.按常理都是调用外部的maven,并且下载后做文件指纹校验的.真的不明白会有这样的情况.先用idea一段时间看看...至少eclipse4.3遇到两次了.我都清一次库了,抓狂啊.啊..啊....对于抛出的异常还是找不到下载不完整的jar,我就写了一个工具.在文末我会贴上.五.没用web.xml的web,打包成war文件,报错: Failed to execute goalorg.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project web: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode)只需要在web模块下的pom.xml下的build节点增加以下代码,重写一下maven-war-plugin 组件就可以.重点在于下面的configuration. plugins是build下在同的节点,与pluginManagement是兄弟节点.其中,下面的executions节点可以删除,留默认值.[html]view plaincopy1.<plugins>2.<plugin>3.<artifactId>maven-war-plugin</artifactId>4.<version>2.2</version>5.<configuration>6.<failOnMissingWebXml>false</failOnMissingWebXml>7.</configuration>8.<executions>9.<execution>10.<id>default-war</id>11.<phase>package</phase>12.<goals>13.<goal>war</goal>14.</goals>15.</execution>16.</executions>17.</plugin>18.</plugins>安装jar到本地maven库例子.d:¥maven¥bin¥mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar -Dfile=ojdbc14-10.2.0.4.0.jarmaven的5种scope对于3种class是否有效:[html]view plaincopy1. compile test runtime examplepile Y Y Y spring-core3.test - Y - junit4.provided Y Y - servlet-api5.runtime - Y Y jdbc驱动6.system Y Y - 本地的,maven仓库之外的类库文件左边为第一直接依赖,上边为第二直接依赖,则对应的依赖传递如下:[html]view plaincopy1. compile test provided runtimepile compile - - runtime3.test test - - test4.provided provided - provided provided5.runtime runtime - - runtime依赖调解两原则:1.路径最近者优先2.路径长度相同,解析依赖声明靠前优先找出maven下载出错的文件工具类(我170多M左右的maven库,一分钟左右就检查完毕,最终确实有几个下载不完整的文件)[java]view plaincopy1.import java.io.*;2.import java.security.MessageDigest;3.import java.security.NoSuchAlgorithmException;4.5./**6. * 找出maven下载出错的文件7. * Created by xiejx618 on 14-4-1.8. */9.public class TestUtil {10.private static MessageDigest messageDigest = null;11.static {12.try {13. messageDigest= MessageDigest.getInstance("SHA1");14. }catch (NoSuchAlgorithmException e){15. e.printStackTrace();16. }17. }18.private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5','6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };19.private static final int BUFFER_SIZE = 4096;20.21./**22. * 以16进制字符串形式返回数据的sha123. * @param data24. * @return25. */26.public static String digestData(byte[] data) {27. messageDigest.update(data);28. data=messageDigest.digest();29.int len = data.length;30. StringBuilder buf = new StringBuilder(len * 2);31.for (int j = 0; j < len; j++) {32. buf.append(HEX_DIGITS[(data[j] >> 4) & 0x0f]).append(HEX_DIGITS[data[j] & 0x0f]);33. }34.return buf.toString();35. }36./**37. * 根据文件与编码以String形式返回文件的数据38. * @param file39. * @param charset40. * @return41. */42.public static String getFileString(File file, String charset){43. InputStreamReader reader=null;44. StringBuilder out = null;45.try {46. reader = new InputStreamReader(new FileInputStream(file), charset);47. out = new StringBuilder();48.char[] buffer = new char[BUFFER_SIZE];49.int bytesRead = -1;50.while ((bytesRead = reader.read(buffer)) != -1) {51. out.append(buffer, 0, bytesRead);52. }53. }catch (IOException e){54. e.printStackTrace();55. }finally {56.try {57.if (reader!=null) reader.close();58. } catch (IOException ex) {59. ex.printStackTrace();60. }61. }62.return out.toString();63. }64.65./**66. * 根据文件以byte[]形式返回文件的数据67. * @param file68. * @return69. */70.public static byte[] getFileData(File file){71. FileInputStream in=null;72. ByteArrayOutputStream out=null;73.try {74. in=new FileInputStream(file);75. out=new ByteArrayOutputStream(BUFFER_SIZE);76.int byteCount = 0;77.byte[] buffer = new byte[BUFFER_SIZE];78.int bytesRead = -1;79.while ((bytesRead = in.read(buffer)) != -1) {80. out.write(buffer, 0, bytesRead);81. byteCount += bytesRead;82. }83. out.flush();84. } catch (IOException e) {85. e.printStackTrace();86. } finally {87.try{88.if (in!=null) in.close();89.if (out!=null) out.close();90. }catch (IOException ex){91. ex.printStackTrace();92. }93. }94.return out.toByteArray();95. }96.97./**98. * 凡是以.sha1的文件结尾的文件,先将文件名去掉.sha1找到文件sourcefile,获取sourcefile文件的真实的sha1和从这个.sha1文件获取sha1,99. * 进行比照,如果不匹配,输出实际的sha1和期望的sha1100. *101. * @param file102. */103.public static final void handle(File file){104. String filename=file.getName();105.if(filename.endsWith(".sha1")){106. String sourcename=filename.substring(0, stIndexOf('.') );107. File sourcefile=new File(file.getParent(),sourcename);108.byte[] sourcedata=getFileData(sourcefile);109. String sha1Real=digestData(sourcedata);110. String content=getFileString(file,"UTF-8");111. String sha1Check=content.split(" ")[0].trim();112.if(!sha1Real.equalsIgnoreCase(sha1Check)){113. System.out.println(sourcefile.getAbsolutePath()+"的实际SHA1:"+sha1Real);114. System.out.println(file.getAbsolutePath()+"的验证SHA1:"+sha1Check);115. }116. }117. }118.119./**120. * 根据目录dir,递归所有的文件按handle方法处理121. * @param dir122. */123.public static final void showAllFiles(File dir){124. File[] fs = dir.listFiles();125.for(int i=0; i<fs.length; i++){126.if(fs[i].isDirectory()){127. showAllFiles(fs[i]);128. }129. handle(fs[i]);130. }131. }132.public static void main(String[] args) { 133. showAllFiles(new File("E:/mvnrepo0329")); 134. System.out.println("the end");135. }136.}。

史上最完整的erlang环境配置

Erlang环境配置1.安装erlang运行时。

直接双击运行otp_win32_R16B02.exe,按照提示一步步安装即可。

2.安装java运行时。

直接双击运行jre-7u5-windows-i586.exe,安装提示一步步安装即可。

3.安装eclipse。

将压缩包eclipse-standard-kepler-SR1-win32.zip解压到任意目录下即可。

4.安装erlide插件。

将erlide目录下的所有文件拷贝到eclipse解压所在目录,并修改link目录下的.link文件里面的路径名,使指向plus目录下的插件(注:路径中不能有中文出现), ok.5.配置erlide。

在菜单上依次选择[Window]->[preference],在左边选择栏找到[Erlang]->[Installed runtimes],然后点击右边的[add]按钮,选择你安装Erlang的路径,如果你有多个Erlang安装版本可以依次设置。

6.新建工程。

在菜单上依次选择[File]->[New]->[Project],然后选择[Erlang]->[Erlang Project]。

填写Project Name,比如“ElTest”,余下的按默认设置,点击[Next],最后是[Finish]。

7.新建module。

在左边新建的project里右键点击[src],选择[new module],在弹出的窗口里填入以下信息。

Module name:TestContainer:/ElTest/src (默认)Application name:None (默认)Skeleton:None (默认)在最下面的两个输入框里输入say(这个是方法名)和0(参数个数),然后点击[Apply]按钮。

最后点击[finish]按钮。

编辑新生成的module如以下代码1.%% Author: WQF2.%% Created: 2008-11-93.%% Description: TODO: Add description to test4.-module(test).5.6.%%7.%% Include files8.%%9.10.%%11.%% Exported Functions12.%%13.-export([say/0]).14.15.%%16.%% API Functions17.%%18.19.%%20.%% TODO: Add description of say/function_arity21.%%22.say() ->23. io:format("hello, world\n").24.25.26.%%27.%% Local Functions28.%%%% Author: WQF%% Created: 2008-11-9%% Description: TODO: Add description to test-module(test).%%%% Include files%%%%%% Exported Functions%%-export([say/0]).%%%% API Functions%%%%%% TODO: Add description of say/function_arity%%say() -> io:format("hello, world\n").%%%% Local Functions%%8.配置运行project右键点击Project,依次选择[run as]->[run configurations],在弹出的窗口,右键点击左边一览的[Erlang application],选择[new]。

erlang windows 编译

erlang windows 编译Erlang是一种并发编程语言,它以可扩展性和容错性为设计目标。

尽管最初是为了构建可靠的电话交换机系统而开发的,但Erlang已经成为构建实时、分布式和高可用性应用程序的一种流行选择。

本文将重点介绍在Windows系统上编译Erlang的过程,以帮助读者开始使用这个强大的编程语言。

第一步:准备编译环境在开始编译Erlang之前,我们需要在Windows系统上安装一些必要的工具和依赖项。

以下是准备编译环境的步骤:1. 安装MSYS2MSYS2是一个可以在Windows系统上运行的软件包管理器,它提供了类似于Unix风格的Shell环境。

我们将使用它来安装其他编译所需的工具和依赖项。

您可以从MSYS2的官方网站下载最新版本的安装程序,并按照提示进行安装。

2. 安装依赖项打开MSYS2 Shell,运行以下命令来更新软件包列表并安装所需的依赖项:pacman -Syuupacman -S make gcc perl m4 wget tar unzip autoconf automake gawk3. 安装GitErlang的源代码托管在GitHub上,所以我们需要安装Git来获取最新的源代码。

您可以从Git的官方网站下载最新版本的安装程序,并按照提示进行安装。

4. 下载Erlang源代码打开MSYS2 Shell,运行以下命令来克隆Erlang的源代码存储库:git clone第二步:配置编译选项在开始编译之前,我们需要进行一些配置以指定编译选项。

以下是配置编译选项的步骤:1. 进入源代码目录打开MSYS2 Shell,进入Erlang源代码所在的目录:cd otp2. 运行配置脚本运行以下命令来生成配置脚本:./otp_build autoconf3. 配置编译选项运行以下命令来配置编译选项:./configure4. 根据需要进行自定义配置(可选)如果您需要根据特定的需求进行自定义配置,可以使用一些可选的选项来配置编译过程。

erlang教程

erlang教程
Erlang是一种并发编程语言,具有高度的可伸缩性和容错性。

本教程将带您逐步了解如何使用Erlang进行编程。

1. 安装和设置Erlang环境
- 下载Erlang编译器并进行安装
- 配置环境变量
2. Hello World
- 创建一个简单的Erlang程序来输出"Hello, World!"
3. 变量和数据类型
- 学习Erlang中的变量和数据类型,包括整数、浮点数、布尔值等。

4. 函数
- 定义和调用函数以及函数参数传递。

5. 条件语句
- 使用if和case语句进行条件判断和分支控制。

6. 循环
- 使用递归和列表推导来实现循环。

7. 并发编程
- Erlang的并发模型和并发编程概念。

8. 进程和消息传递
- 创建和管理进程以及在进程之间传递消息的方法。

9. 错误处理
- 如何在Erlang中处理异常和错误。

10. 文件操作
- 如何读写文件以及处理文件操作错误。

11. Erlang标准库
- Erlang提供的标准库函数和模块的使用。

请按照上述顺序逐步学习本教程中的每个主题。

每个主题都包含示例代码和解释,以帮助您更好地理解和掌握Erlang编程。

祝您学习愉快!。

Windows下安装Emacs的最佳方法

Windows下安装Emacs的最佳方法Emacs平台很强大,已经不只是一个编辑器这么简单了,它被移植到Windows平台下使得非Unix用户也有幸接触到并使用它。

之前我写了一个Windows7下的Emacs的一点说明,简单说了一下如何在Windows下安装emacs,不过,那不是最佳方式。

因为,按Windows7系统本身的HOME目录配置的话,C:\Users\<username>\AppData\Roaming 这个HOME目录太深了,而且默认状态下AppData目录是隐藏的,最最关键的是:如果系统盘一旦出问题,之前的.emacs配置文件和.el的扩展都得重新配置和下载。

还有另外两咱方法,更改HOME目录:一是添加HOME系统环境变量,这个有个很大的弊端,如果系统里同时还安装有java sdk、Cygwin等,那就可想而知了,这些软件“找不到北的”;二是添加HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs\HOME=%emacs_dir%注册表项,好是好,你得重启系统啊。

本文给大家介绍一个个人认为最佳的方式:首先,我们再来看看emacs的简单安装吧,/pub/gnu/emacs/windows/emacs-23.2-bin-i386.zip这里下载emacs-23.2最新版,并解压到一个磁盘根目录,我这里放在了d:\下,解压后,得到d:\emacs-23.2,进入d:\emacs-23.2\bin目录,执行addpm.exe 在开始菜单中加入emacs 的启动项。

启动emacs,在Option 菜单中随便更改一下设置,如取消Case-Insensitive Search,之后,点Save Options。

这一步不是多余的哦,因为默认情况下emacs不会在一启动的时候就生成.emacs 配置文件和.emacs.d目录的。

这步生成的.emacs 目录还是在C:\Users\<username>\AppData\Roaming 下,因为我们并没有做别的设置移动它嘛~下面就进入关键步骤了,打开C:\Users\<username>\AppData\Roaming\.emacs 配置文件,修改内容为(load-file "D:/emacs-23.2/.emacs")复制代码这个配置意思很明显了,emacs在启动的时候会加载C:\Users\<username>\AppData\Roaming\.emacs 这个配置文件,而该文件又加载另一个D:/emacs-23.2/.emacs 配置文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档