2 melonboy312 melonboy312 于 2014.06.27 10:39 提问

tomcat注册服务后调用jni出现问题

我使用tomcat6+jdk6(64位)做服务器开发。
在服务器端使用jni调用c++来播放音频:
c++主要代码如下:
function(JNIEnv env, jclass c, jstring path) {
const char
str;
str = env->GetStringUTFChars(path, NULL);
return sndPlaySound(str, SND_SYNC);
}

使用eclipse启动tomcat,或者使用tomcat6.exe,或者使用startup.bat启动,都能正常播放声音。
但是注册成windows服务后,就不能播放了。没有报错,没有异常,jni调用返回值位true。
因为是同步播放的,我的这段音频时间是10秒左右,但是我在调用jni语句前后分别打了log,在服务方式启动的情况下,这两句log打印时间完全相同,也就是说这个调用瞬间就返回了,没有报错,但是也没有播放。

查了好多资料了,基本没有讨论这么细的问题的,找到有网友说tomcat注册服务后有权限问题,但是我看是system用户啊,这是最大权限了吧。而且我参照这位网友说的,改为用administrator(也就是我用startup等方式运行时使用的用户)来启动服务,还是同样的问题。

实在没招了,求各位指导。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
JNI调用出现XXX遇到问题已退出解决方法
在JNI调用中经常会遇到异常导致APK闪退的现象,而这种问题通常很难定位,要定位这种问题,需要: 1:首先在logcat中加入debug(方法如图所示): 2:在运行后报错中会在debug中找到类似这样的一串错误 看到这个长长的错误,不要慌,我们就要拿着这个错误去分析: 首先,从这个长长的串中找到有用的信息 10-28 12:39:17.779: I/DE
tomcat注册为系统服务后,项目无法启动或者启动后页面中文乱码
tomcat注册为系统服务后,项目无法启动或者启动后页面中文乱码
将TOMCAT注册成系统服务的意义
1 在服务器重启的时候,系统会自动启动系统服务,而不必手动操作,方便维护。 2 注册方法:  在DOS命令行模式下,cd到tomcat的bin目录下。 在tomcat的bin目录下可以看到有一个service.bat的批处理文件,这个文件就是为我们将tomcat注册成系统服务所用。 执行命令service.bat  install  服务名   后面的服务名可以随便取,别跟系统
tomcat注册成服务,jacob.dll调用不到
由于项目中要调用com组件将office转换为pdf。用的是jacob。以前jacob.dll不管是,放jdk下,还是放tomcat\bin下,用startup.bat启动都可以正常使用。现在问题是,把tomcat注册成服务以后,从服务中启动tomcat后,jacob调用不到。调用dll文件另存时出错,解决方法:首先打开任务管理器,结束Excel.exe*32的进程,停止你的tomcat服务, 然...
如何注册Tomcat到Window Service服务
对于Web项目来说,经常用的服务器就是Tomcat。但是麻烦的事是,每次都得启动一下Tomcat服务。但是,如果把Tomcat的服务注册为Windows Service服务,就可以设置为开机自动启动,这样就不用每次手动启动了。 1、软件和环境     环境:JDK1.8     应用服务:Tomcat7.0(非安装版)     操作系统:Windows8 2、设置
将tomcat注册为windows服务
注册tomcat为windows服务,并修改tomcat的类加载路径
免装版tomcat注册成windows系统服务方法
1、将解压版tomcat解压到相应的路径下(如:D:\TomcatServer\ 重命名tomcat为Tomcat1) 2、如果服务器上有多个tomcar,那你必须在D:\TomcatServers\Tomcat1\conf\server.xml中修改端口 3、在D:\TomcatServers\Tomcat1\
将Tomcat注册为Windows本地服务
上一篇我们写了安装Tomcat环境的搭建,这篇我们将Tomcat注册为Windows本地服务,不用每次打开电脑都去开启startup.bat,直接开始 第一步:打开命令提示符---输入cd/d E:\Tomcat\apache-tomcat-6.0.48\bin目录 第二步:安装服务:service.bat install----回车---------安装成功  当安装成功后双击打开
JNI基本原理
Jni原理     JNI是Java Native Interface(Java本地接口)的缩写。JNI作为java和操作系统间的一个直接接口,可以通过JNI使得java直接调用操作系统的资源。目前JNI只能通过c/C++实现,因为jni只是对操作系统资源调用的一个桥接过程。所以理论上在windows下只要是dll文件均可以被调用。java代码编译之后是运行在一个jvm里,所以java的任何
将tomcat服务注册到service中,使用service tomcat start启动
linux下有的软件启动很麻烦,跟一大堆参数,比如指定配置文件路径、以何种模式启动神马的,等等。而我们装上appache或者mysql后,就可以使用service httpd start来启动,很是方便,service命令其实是跑一个shell脚本来管理,这样的话,我们自己手动写个shell脚本就可以实现service anything doanything了。另外,用chkconfig命令设置开机