`

Apache FtpServer在64位系统下服务不能启动解决方法

阅读更多

 Apache FTPServer是一款用Java开发的FTP开源服务器,其二进制文件及源码可从http://mina.apache.org/ftpserver/下载。然而在使用中,发现如果将其安装为64位的Windows系统的服务时,服务将无法启动,总是提示错误。打开Log文件,则可以发现以下错误信息:

       [174  javajni.c] [error] %1 is not a valid Win32 application.

       [947  prunsrv.c] [error] Failed creating java C:\Program Files\Java\jdk1.6.0_26\jre\bin\server\jvm.dll

        在网上搜索该问题的解决方案,几乎没有相关的内容,个别相关网页提及的解决方法是将32系统下的一个动态库拷贝到system32或其它什么指定的目录下,尝试后也未能解决问题。并且,从理论是说,在64位系统下,并且已成功安装64位的JDK或JRE的情况下,这么做似乎也是没有道理的。

        经过分析其bin目录下的service.bat脚本文件及其它脚本,可以发现其实bin目录下的ftpd.exe并不是FTP服务器的必需文件,它只不过是为了在Windows系统下实现系统服务的一个外壳程序,似乎它本身是另外一个开源项目的二进制文件(这一点未经查实,只是猜测)。因此结合在启动FTP服务时日志中记录的异常信息,大胆推测是由于这个ftpd.exe不能在64位Windows系统下正常启动Java编写的FTP程序而造成的,而基于此前的分析,尝试拷贝Tomcat较新版本(6或7)安装在64位Windows系统下的bin目录里的tomcat6.exe或tomcat7.exe到Apache FTPServer的bin目录下,并将原有的ftpd.exe改名或删除,然后将tomcat6.exe或tomcat7.exe改名为ftpd.exe。再次尝试重启FTP服务,发现服务将可以正常启动。

以上方法在Windows 7 SP1 64Bit下验证通过。

分享到:
评论
2 楼 csdn_zuoqiang 2012-07-02  
Apache Ftp Server,目前是1.0.4,非常好的纯Java Ftp服务器,既可以直接提供FTP服务,有可以嵌入到程序里。



如果Ftp服务器提供的内容,有中文目录,文件名,XP下IE访问会出现一些错误。

如果IE的选项->高级里 为Ftp站点启用文件夹视图选项

没有选中,这时显示的是Html页面,但中文显示是乱码,强行指定编码为Utf8,则显示正常,但无法下载;

该选项选中,这时是文件夹方式显示Ftp服务器内容,选中文件夹后右键复制到文件夹,会复制出错,但用复制,然后粘贴到指定位置的方式可以正常复制。

使用windows带的ftp.exe访问站点,遇到中文也会出现错误。

但如果用流行的ftp客户端,比如FlashFXP就一切正常。



这说明XP 下IE的Ftp支持有bug。

但用户一般不用Ftp客户端,为了迁就IE,只有对ApacheFtpServer修改,通过查资料,XP下用的编码是GBK,只要把Apache FtpServer代码中处理编码的地方由国际标准UTF8编码改为迁就Xp下IE的GBK编码即可完成。





具体修改




org.apache.ftpserver.command.impl包里OPTS_UTF8.java
将 
session.write(LocalizedFtpReply.translate(session, request, context, FtpReply.REPLY_200_COMMAND_OKAY, "OPTS.UTF8", null));

改为
session.write(LocalizedFtpReply.translate(session, request, context, FtpReply.REPLY_502_COMMAND_NOT_IMPLEMENTED, "OPTS.UTF8", null));





org.apache.ftpserver.listener.nio包里FtpServerProtocolCodecFactory.java

new TextLineDecoder(Charset.forName("UTF-8"));
改为:
new TextLineDecoder(Charset.forName("GBK")); 





org.apache.ftpserver.impl包里IODataConnection.java
将  
writer = new OutputStreamWriter(out, "UTF-8"); 
改为:
writer = new OutputStreamWriter(out, "GBK");






org.apache.ftpserver.listener.nio包里FtpResponseEncoder.java

Charset.forName("UTF-8").newEncoder(); 
改为:
Charset.forName("GBK").newEncoder();





重编译后,手动替换class就可以,

如果用mvn package,test过不了,只有将出错的test文件DecoderTest和I18NTest删除,再package。



然后IE两种方式都可以正确的访问FTP服务器中的中文资源了
1 楼 csdn_zuoqiang 2012-06-10  
win7下面,恐怕很多人都用windows自带的ftp功能吧。站长今天在这里介绍的是一个开源免费的ftp软件–apache-ftpserver,它是由java编写的。
以下步骤,将使用站长的安装目录为例,在你自己安装的时候,请更换为自己的目录
1、最新版是1.0.6,下载地址http://mina.apache.org/ftpserver/apache-ftpserver-106-release.html,确认你下载的是zip格式。
2、解压缩zip文档中的文件夹到你想要的任意目录,站长解压到的目录是D:\Program Files (x86)\Web,然后将文件夹重命名为ftpserver。这时你的apache-ftpserver的所有文件与文件夹夹应该位于D:\Program Files (x86)\Web\ftpserver。
3、进行初始配置,打开D:\Program Files (x86)\Web\ftpserver\res\conf\ftpd-typical.xml文件。修改如下:
<server xmlns="http://mina.apache.org/ftpserver/spring/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd "
id="myServer"
max-logins="5"
anon-enabled="false"
max-anon-logins="0"
max-login-failures="3"
login-failure-delay="30000">
<listeners>
<nio-listener name="default" port="21">
<ssl>
<keystore file="./res/ftpserver.jks" password="password" />
</ssl>
</nio-listener>
</listeners>
<file-user-manager file="./res/conf/users.properties" />
</server>
解释说明:
max-logins:允许同时登录ftp的用户数;
anon-enabled:是否运行匿名登录;
max-anon-logins:允许同时登录的最大匿名用户数;
max-login-failures:允许登录失败的次数,超过次数则关闭连接;
login-failure-delay:一次登录失败后,重新发起登录的间隔,单位毫秒;
4、打开D:\Program Files (x86)\Web\ftpserver\res\conf\users.properties,对admin部分修改如下:
ftpserver.user.admin.userpassword=21232F297A57A5A743894A0E4A801FC3
ftpserver.user.admin.homedirectory=./wwwroot
ftpserver.user.admin.enableflag=true
ftpserver.user.admin.writepermission=true
ftpserver.user.admin.maxloginnumber=3
ftpserver.user.admin.maxloginperip=3
ftpserver.user.admin.idletime=0
ftpserver.user.admin.uploadrate=0
ftpserver.user.admin.downloadrate=0
默认的用户名为admin,如果你要修改为别的,只要把上文中的admin换成其他即可,默认是使用md5加密的密码,初始密码为admin,第一行的是加密后的值。
如果你想要使用明码,将ftpd-typical.xml文件中的file标签修改为
<file-user-manager file="users.properties" encrypt-passwords="true" />
即可,但是强烈建议使用加密。
homedirectory:ftp文件目录,你上传的文件将被存放在此,我设置的是apache-ftpserver安装目录下的wwwroot文件夹,当然是我自己新建的。
5、安装,站长选择直接将ftpserver安装为windows服务的形式。
使用管理员身份打开cmd,定位到D:\Program Files (x86)\Web\ftpserver\bin目录,键入命令:
service install ftpd "D:\Program Files (x86)\Web\ftpserver\res\conf\ftpd-typical.xml"。
由于站长的路径中含有空格,应此使用双引号将整个路径引起来,如果你的路径中不含有空格,不需要使用双引号。
6、安装完成后,使用net start ftpd,即可启动apache-ftpserver。
7、访问ftp://127.0.0.1,使用你设置的用户名和密码即可登陆。
8、在D:\Program Files (x86)\Web\ftpserver\bin目录有一个图像界面管理工具,ftpdw.exe。右键使用管理员身份启动,你可以在这里设置,apache-ftpserver是否随系统启动。

相关推荐

    phpstudy-x64.zip

    有个别同学说不能在win7下使用,此程序已经在Win2000/xp/2003/win7/win8/win2008下测试成功,操作系统均专业版。apache启动不了,原因一是防火墙拦截,二是80端口已经被别的程序占用,如IIS,迅雷等;三是没有安装VC...

    企业级Linux服务攻略

    12.2.6 Telnet服务的启动与停止 12.2.7 防火墙设置 12.2.8 更改Telnet端口号 12.2.9 Linux客户端 12.2.10 Windows客户端 12.3 SSH服务 12.3.1 SSH概述 12.3.2 安装OpenSSH 12.3.3 SSH的启动与停止 12.3.4 OpenSSH...

    phpStudy 2016.10.31 再次更新,支持自定义php版本

    有个别同学说不能在win7下使用,此程序已经在Win2000/xp/2003/win7/win8/win2008下测试成功,操作系统均专业版。apache启动不了,原因一是防火墙拦截,二是80端口已经被别的程序占用,如IIS,迅雷等;三是没有安装VC...

    unix大全(涵盖了UNIX学习的方方面面)

    32. OpenServer下的终端监控系统-Spy FileSystem 33.X常用的系统调用 34.X系统下部分控制代码介绍及其应用 35.用工具badtrk检查磁盘坏道? 36.x C 编程问题精粹 37.输入输出函数 38.命令详解及使用技巧 39.LOGIN:...

    RED HAT LINUX 6大全

    6.5.5 当系统不能引导时,Red Hat会 来救援 102 6.5.6 获取更多的信息 103 6.6 小结 104 第7章 SMTP和协议 105 7.1 Internet电子邮件标准的历史简述 105 7.1.1 sendmail介绍 105 7.1.2 邮局协议 105 7.1.3 Internet...

    JAVA上百实例源码以及开源项目

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    JAVA上百实例源码以及开源项目源代码

     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

    php网络开发完全手册

    1.4.4 Apache的启动与关闭 12 1.4.5 Apache的配置文件httpd.conf与 1.4.5 .htaccess的简介 13 1.4.6 PHP的配置文件php.ini的简介 13 1.4.7 PHP常用参数的配置 14 1.5 几种综合网络服务器系统的安装 14 1.5.1 XAMPP ...

    python入门到高级全栈工程师培训 第3期 附课件代码

    05 系统启动流程 06 grub加密 07 bios加密 08 top命令 09 free命令 10 进程管理 第6章 01 上节课复习 02 磁盘分区 03 文件系统与挂载 04 挂载信息讲解 05 磁盘用满的两种情况 06 软连接和硬链接 07 软连接和硬链接...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例092 不能重写的方法 113 5.3 包装类的使用 114 实例093 将字符串转换成整数 114 实例094 整数进制转换器 115 实例095 查看数字的取值范围 116 实例096 ASCII编码查看器 117 实例097 Double类型的比较 118 5.4 ...

Global site tag (gtag.js) - Google Analytics