If you need the JDK (not just the jre), you should be able to do the following:

    stage-packages:
      - fontconfig-config
      - default-jdk
      - fonts-dejavu-extra
      - fonts-ipafont-gothic

In your snapcraft.yaml file instead of just using including the jre.

If this is your complete snapcraft.yaml file, you may also need:
    plugs: [home, x11, opengl, network, unity7]
or a subset of these.

There are some limitations with Java that I've found.

Here is my wrapper:
#!/bin/bash

# Not good, needed for fontconfig
export XDG_DATA_HOME=$SNAP/usr/share
# Font Config
export FONTCONFIG_PATH=$SNAP/etc/fonts/config.d
export FONTCONFIG_FILE=$SNAP/etc/fonts/fonts.conf
export HOME=$SNAP_USER_DATA

export LIBGL_DRIVERS_PATH=$SNAP/usr/lib/x86_64-linux-gnu/dri
export LIBVA_DRIVERS_PATH=$SNAP/usr/lib/x86_64-linux-gnu/dri
export LIBGL_DEBUG=verbose

export PATH=$PATH:/usr/local/bin

java -Dswing.defaultlaf=javax.swing.plaf.nimbus.NimbusLookAndFeel -Duser.home=$HOME -Dsun.java2d.opengl=true -jar $SNAP/jar/torgo-1.4.1.jar "$@"

You must set the user.home directory this way for the application to work (unless this has been fixed).

As far as updating gradle. Put in a LaunchPad bug and register an Issue. While I added the gradlew plugin, I am not a gradle user, so I can definitely work on adding/fixing work.

If the application tries to use xdg-open or open a web-browser, there are more fixes that are needed in my experience.
--
Matt

On Thu, Dec 29, 2016 at 4:46 AM, Felix Natter <[email protected]> wrote:
Dear snapcraft experts,

I am creating a simple snap for a java application:

BTW: My original post is here:
http://askubuntu.com/questions/865090/simple-java-snap-with-jre-dependency

name: freeplane-snap
version: 1.5.18-1
summary: Java program for working with Mind Maps
description: ...
confinement: devmode
grade: stable

apps:
  freeplane-snap:
    command: ./freeplane.sh

parts:
  main:
    plugin: dump
    source: freeplane-1.5.18/
    stage-packages: [openjdk-8-jre]
    filesets:
      mybuild:
        - "*"
    stage:
      - $mybuild
    snap:
      - $mybuild

Freeplane uses a gradle build system, but the snapcraft gradle plugin is not powerful enough (expects "gradlew" to be there and not "gradle", and
is used for single jar projects, i.e. always with 'jar' option). Where
can I submit feature requests / patches for this?

So I am using the project's binary distribution (unzipped to
./freeplane-1.5.18) with the 'dump' plugin, which works well. However,
since I'm not using a java build system, the jre is missing in the snap
(when running "freeplane-snap" I get an error that the JDK cannot be
found, NOT when running freeplane.sh directly). I tried to add it with
'stage-packages: [openjdk-8-jre]' but this did not help.

Could you please tell me how to add the jre to the mix?

One more question: Hearing about this containment stuff, is it
possible/feasible (using plugs?) to to create a desktop application that
can read and write (mind maps) from/to everywhere, just like a normal
.deb? (like plugs: [network, home, tmp]?)
I also need to install the desktop file and mime type mappings to
/usr/share/... --> I assume I can do this with separate parts?

Many Thanks and Best Regards,
--
Felix Natter

--
Snapcraft mailing list
[email protected]
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/snapcraft
-- 
Snapcraft mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/snapcraft

Reply via email to