1

I developed a desktop app(client) that collects some data. It works even in the absence of internet connection.

I would like to create a windows service probably in java also, that everytime an internet connection is established, takes data from the apps database and sends it to some remote server.

I have been searching the internet for so long on how and what to use to create a windows service in java, and what i got is

Java Service Wrapper

People around the internet seem to use it, but for me i havent been able to find a proper docs to illustrate on how i can create a service.

Could anyone help with anything that will enable me to create a windows service or anything like that.

1

1 Answer 1

1

Add something like to your pom.xml:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>appassembler-maven-plugin</artifactId>
  <version>1.7</version>
  <executions>
    <execution>
      <id>generate-jsw-scripts</id>
      <phase>package</phase>
      <goals>
        <goal>generate-daemons</goal>
      </goals>
      <configuration>
        <repositoryLayout>flat</repositoryLayout>
        <includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
        <daemons>
          <daemon>
            <id>${jsw_name}</id>
            <mainClass>${path_to_runner_class}</mainClass>
            <commandLineArguments>
              <commandLineArgument>start</commandLineArgument>
            </commandLineArguments>
            <jvmSettings>
              <initialMemorySize>512M</initialMemorySize>
              <maxMemorySize>512M</maxMemorySize>
              <!--systemProperties><systemProperty>com.sun.management.jmxremote</systemProperty><systemProperty>com.sun.management.jmxremote.port=9010</systemProperty><systemProperty>com.sun.management.jmxremote.local.only=false</systemProperty><systemProperty>com.sun.management.jmxremote.authenticate=false</systemProperty><systemProperty>com.sun.management.jmxremote.ssl=false</systemProperty><systemProperty>org.tanukisoftware.wrapper.WrapperManager.mbean=TRUE</systemProperty><systemProperty>org.tanukisoftware.wrapper.WrapperManager.mbean.testing=false</systemProperty></systemProperties-->
            </jvmSettings>
            <generatorConfigurations>
              <generatorConfiguration>
                <generator>jsw</generator>
                <includes>
                  <include>linux-x86-64</include>
                  <include>windows-x86-64</include>
                </includes>
              </generatorConfiguration>
            </generatorConfigurations>
            <platforms>
              <platform>jsw</platform>
            </platforms>
          </daemon>
        </daemons>
      </configuration>
    </execution>
  </executions>
</plugin>

put name instead of jsw_name e.g. jsw_example and path to you runner class(class with main function) e.g. com.copper.drivers.emulation.Runner instead of path_to_runner_class. Then build the project. Go to the target\generated-resources\appassembler\jsw\${project_name}\bin\ and there you will found files to run from windows and from linux. Open cmd as admin and run them using command: ${project_name} console - if you whant to run it in console ${project_name} start - to run it as service.

If you need jmx uncomment systemProperties.

P.S. If you use linux - start it from ${project_name} directory with command bin/${project_name} start or bin/${project_name} console.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.