`

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是否随系统启动。

相关推荐

    apache FTPserver 安装包

    Apache FTPServer是一款开源的FTP服务器软件,它是Apache软件基金会的一部分,设计用于提供可靠且高效的文件传输服务。在本文中,我们将深入探讨如何安装和配置Apache FTPServer,以及它的一些核心特性。 首先,让...

    Apache FTPServer的配置使用

    在 JavaWeb 集群环境下,配置 FTP 服务器是非常重要的,本文将介绍 Apache FTPServer 的配置使用,帮助读者快速搭建 FTP 服务器。 FTP 介绍 FTP 是一个标准的 TCP/IP 协议,用于在网络上传输文件。FTP 协议基于...

    apache-ftpserver-1.1.1.zip

    总之,Apache FTPServer是一个强大且灵活的FTP服务器解决方案,无论是在个人项目还是企业环境中,都能提供可靠的服务。了解并熟练掌握其安装、配置和管理方法,对于提升网络文件传输的安全性和效率至关重要。

    Java 嵌入apache.ftpserver.FtpServer 实现FTP服务

    总结来说,Java嵌入Apache FtpServer实现FTP服务涉及的主要步骤包括:配置FtpConfigurator,创建并启动FtpServer,可能还需要在Tomcat等Web容器中部署。通过理解和利用Apache FtpServer提供的API,我们可以创建一个...

    Apache Ftp Server使用说明

    本文将深入探讨Apache Ftp Server的使用方法,包括安装、配置、管理以及常见问题解决。 **一、安装Apache Ftp Server** 1. 下载:首先,你需要从Apache官方网站(http://mina.apache.org/ftpserver/download.html...

    apache ftp server

    2. **虚拟文件系统(VFS)**:Apache FTP Server支持多种文件系统,包括本地文件系统、网络文件系统(NFS)、Samba等,这得益于其强大的VFS模块,可以轻松地扩展支持其他存储系统。 3. **用户认证与授权**:服务器...

    apache ftpserver jar包

    3. **启动FTPServer**:在Spring的初始化方法中启动FTP服务器,使其在应用程序启动时自动运行。 4. **处理事件和监听器**:可以通过实现监听器接口,对FTP服务器的连接、登录等事件进行监听和处理。 5. **安全与...

    apache-ftpserver-1.0.6

    Apache FTPServer是一款开源的FTP服务器软件,源自Jakarta MINA项目,由Apache软件基金会维护。这个版本号"1.0.6"表明我们讨论的是该项目的一个稳定版本,发布于2009年,旨在提供一个可扩展且高性能的FTP服务解决...

    apache-ftpserver-1.1.1.tar.gz

    Apache FTPServer是一款开源的FTP服务器软件,主要用于在Linux操作系统上提供文件传输服务。这款服务器基于Java语言编写,因此具备跨平台特性,可以在多种操作系统上运行。`apache-ftpserver-1.1.1.tar.gz` 是该软件...

    apache-ftpserver-1.1.0.tar.gz

    这个名为"apache-ftpserver-1.1.0.tar.gz"的压缩包包含了Apache FTPServer的1.1.0版本,适用于那些希望在自己的环境中搭建FTP服务的用户。下面我们将深入探讨Apache FTPServer的主要特性和如何利用它来搭建FTP服务器...

    apache-ftpserver-1.1.1

    总之,Apache FTPServer 1.1.1是一个功能丰富的FTP服务器实现,它允许开发者和系统管理员根据自己的需求定制和扩展FTP服务,以满足各种业务场景。通过简单的配置和管理,你可以轻松地将它集成到你的网络环境中,提供...

    apache-ftpserver-1.0.6.rar

    Apache FTPServer是一款开源的FTP服务器软件,它是Apache软件基金会的一部分,提供了一个强大的、可扩展的、高度定制的FTP服务解决方案。这个"apache-ftpserver-1.0.6.rar"压缩包包含了Apache FTPServer的1.0.6版本...

    apache-ftpserver整合spring,并使用mysql作为用户数据库查询

    总结来说,"apache-ftpserver整合spring,并使用mysql作为用户数据库查询"是一个实现FTP服务的解决方案,它利用Spring框架的灵活性和MySQL数据库的可靠性,提供了一个高效且可扩展的FTP服务架构。用户只需按照项目...

    Apache_Mina-FtpServer_use:使用 Apache_Mina_FTP 服务器

    1. **配置服务器**:你需要配置服务器的主配置文件(通常是 `ftpserver.conf`),指定服务器的监听地址、端口、用户数据库路径等。同时,可以设置日志记录、会话超时、数据连接模式(主动或被动)等选项。 2. **...

    windows下搭建ftp服务器.docx

    #### 四、常见问题及解决方法 1. **无法连接**:检查防火墙设置,确保端口未被屏蔽。 2. **权限问题**:确保用户账号具有相应的读写权限。 3. **配置错误**:仔细检查配置文件中的语法错误或遗漏部分。 通过以上...

    WIN7 64位PHP环境所有安装包缺少的apache安装包

    在搭建WIN7 64位PHP环境时,Apache服务器是必不可少的组件,它为PHP提供了一个运行的平台。本文将详细介绍如何解决“WIN7 64位PHP环境所有安装包缺少的apache安装包”问题。 首先,Apache HTTP Server是世界上最...

    apache_2.2.6_win32

    这个"apache_2.2.6_win32"压缩包文件代表的是Apache服务器的特定版本——2.2.6版,针对Windows 32位操作系统优化。在本文中,我们将深入探讨Apache 2.2.6版本及其在Windows环境中的安装和配置。 1. **Apache服务器...

    apache httpd详细安装过程(附所需软件)

    Apache HTTP Server,通常简称为Apache,是世界上最流行的Web服务器软件之一。...在遇到问题时,查阅官方文档或社区资源通常能找到解决方案。此外,定期更新Apache以获取安全修复和新功能也是必要的维护工作。

    apache编译安装软件集.zip

    7. **启动Apache**:安装完成后,使用系统服务管理命令(如`systemctl start httpd`或`apachectl start`)启动Apache服务器。 为了确保Apache服务器能正常运行,还需要考虑以下几点: - 配置文件`httpd.conf`中的...

Global site tag (gtag.js) - Google Analytics