要求:
这是 Java 开发人员在我的语言环境中面临的一个非常普遍的问题。我真的被困在这个问题上很多天。搜索并尝试了很多,阅读文档。阅读与 JavaExe 相关的所有 stackoverflow 问题。如果您之前做过类似的事情并且有一个全面的答案,请只回复。我真的很感谢社区!
赛纳里奥:
我正在使用JavaExe在桌面交互功能中将应用程序作为系统服务运行。确切地说,我有一个可以捕获桌面屏幕截图的应用程序。我希望它在任何用户登录时运行(以管理员身份),所以没有人可以阻止它。
我有一个 myapp.jar、settings.txt 和一个 lib 目录。
我搜索了很多,发现 JavaExe 有效(通过观看它的例子)
如果有人有更好的方法。请说明。
问题:
根据我的研究,
您必须创建一个名为 .exe 的 .properties 文件,并写入"RunType = 1"该文件。
您在主类中定义了一个静态方法: serviceInit()
我需要放置任何类或引用/导入吗?如何?
编辑:
我的代码下面的作品作为独立的.jar和javaExe.exe了。
它现在确实创建了一个系统服务并以SYSTEM用户身份运行。但它不与桌面交互。即它没有显示任何图形用户界面。
package temp;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
public class Temp {
/**
* @param args the command line arguments
*/
public …Run Code Online (Sandbox Code Playgroud) java windows-services interactive windows-7 java-service-wrapper
我正在尝试使用构建自己的应用程序Tanuki Java Service Wrapper。
设置和配置工作正常,但是通过包装器启动了我的应用程序(也起作用)之后,它会在一段时间后关闭,因为包装器“正在等待JVM发出的信号超时”。
我的应用程序在启动后仍在工作,但仍被关闭。
我目前仍处于设置/测试阶段,因此我只是通过bat文件启动包装程序,而尚未将其作为Windows服务。
我有两个想法,为什么会这样:
1)主线程在启动其他几个线程后终止。我试图让主线程一直等待而不是终止而不是终止,但这无济于事(此外,包装程序也应该在没有主线程的情况下工作)。
2)我的程序主要只是在等待事件(目录监视服务),但是即使我触发了某些事件,它仍然会关闭。
我试图通过禁用JVM ping检查,wrapper.ping.timeout=0但这也没有用,如果我进行了检查,以防应用程序真正挂起,那将是很好的选择。
我正在使用jdk1.7.0_79和wrapper-windows-x86-32-3.5.27。
我正在尝试在 Windows Server 2012 上使用 JavaService.exe ( http://forge.ow2.org/projects/javaservice )将 Java 应用程序作为 Windows 服务运行。
我收到一个一般性错误并且服务没有启动。在事件查看器中,我得到以下信息:
找不到来自源“XXX”的事件 ID 4097 的描述。引发此事件的组件未安装在您的本地计算机上,或者安装已损坏。您可以在本地计算机上安装或修复该组件。
任何想法如何在 windows server 2012 中将 java 作为 windows 服务运行
java windows windows-services java-service-wrapper windows-server-2012
我目前正在开发一个需要大量内存的项目,我不能让Mule 3.4.0使用超过4GB的RAM(在RHEL 6.2上运行).我正在使用Java HotSpot 64位服务器JVM 1.7.0_45-b18和社区版Mule.
我一直在编辑wrapper.conf文件,我尝试了很多设置无济于事.
我看到Mule JIRA中列出了一个错误:https://www.mulesoft.org/jira/browse/MULE-7018,它已经关闭3.4.0,但是不完整.
我最近的尝试是明确尝试强制它立即占用8gb的堆空间,以下是最新的尝试:
# Initial Java Heap Size (in MB)
wrapper.java.initmemory=8192
# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=8192
Run Code Online (Sandbox Code Playgroud)
我已经尝试将initmemory和maxmemoryparemeter设置为零,根据这篇关于包装器的老帖子:http://java-service-wrapper.996253.n3.nabble.com/4096MB-heap-limit-td1483.html - 但是,这会导致骡子无法正常启动.
我还明确尝试通过包装器传递其他JVM参数:
wrapper.java.additional.6=-Xmx8192
wrapper.java.additional.7=-Xms8192
Run Code Online (Sandbox Code Playgroud)
执行此操作时,我可以看到两个内存设置都被发送到JVM(即-Xmx8192 -Xms8192首先在进程线上跟随-Xms4096m -Xmx4096m).但是,我的top命令产生的JVM进程占用的内存不超过4.2gb.我意识到顶级RES列不是确定JVM内存使用率的100%确定方式,但我的印象是,如果我试图分配8gb开箱即用,它肯定应该超过4GB.该机器具有60GB的物理内存.
有没有人发现为Mule 3.4.0获得超过4GB的堆空间的方法?
我编写了一个Java应用程序,它将所选文件转发到ssh服务器.我希望每次Windows启动时自动运行此应用程序.
我知道这个问题已被多次询问,我已经跟踪了这些线索.我尝试过Java Service Wrapper(由于dns问题而无法访问),Apache Daemon和JSL.虽然我有时能够将应用程序作为服务安装,但我从来没有能够在启动时正常运行,甚至无法从命令行手动启动它.
我的问题是,是否有人知道如何完成这项工作的最后一步教程的第一步.我遇到了一些问题,但他们都假设你已经实现了一些他们没有解释如何实现的东西,或者依赖于我没有安装的应用程序.
谢谢