Markamc
Posts: 6
Joined: Wed Jul 03, 2013 8:51 pm

Re: Duke-Pad

Fri Oct 25, 2013 12:00 am

Maybe you are right, I'm not brave enough.....

I will however endeavor to find a solution eventually, please share your progress and tips @ric96

User avatar
xranby
Posts: 539
Joined: Sat Mar 03, 2012 10:02 pm
Contact: Website

Re: Duke-Pad

Tue Nov 12, 2013 2:48 pm

I tested to compile and run the Duke Pad source on a Ubuntu 12.04 machine using JamVM + OpenJDK 8 + OpenJFX 8 + Gradle 1.4.

How it looks when you run it:
https://twitter.com/xranby/status/40027 ... to/1/large
https://twitter.com/xranby/status/40027 ... to/1/large

I had to tweak the build.grade files a little in openjfx-8-graphics-rt to make it compile.

Code: Select all

diff -r 9685fddbf8be apps/experiments/DukePad/build.gradle
--- a/apps/experiments/DukePad/build.gradle	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/build.gradle	Tue Nov 12 15:37:01 2013 +0100
@@ -12,7 +12,17 @@
             "${rootProject.file('equinox/plugins/org.eclipse.osgi_3.9.0.v20130529-1710.jar')}",
             "${rootProject.file('equinox/plugins/org.eclipse.equinox.preferences_3.5.100.v20130422-1538.jar')}",
         )
-        //compile group: 'org.ecilpse', name: 'equinox.preferences', version: '3.5.100.v20130422-1538'
+        // download latest version from maven central
+        // http://search.maven.org/#search|ga|2|org.eclipse.equinox
+        compile 'org.eclipse.equinox:preferences:3.5.100-v20130422-1538' 
+        compile 'org.eclipse.equinox:registry:3.5.301-v20130717-1549'
+        compile 'org.eclipse.equinox:common:3.6.200-v20130402-1505'
+        compile 'org.eclipse.equinox:app:1.3.100-v20130327-1442'
+        // osgi framework
+        // 3.9.0.v20130529-1710
+        compile 'org.eclipse.birt.runtime:org.eclipse.osgi:3.9.0.v20130529-1710'
+        //compile 'org.eclipse.osgi:org.eclipse.osgi:3.7.1'
+        //compile 'org.apache.felix:org.apache.felix.framework:2.0.1'
     }
 
     jar {
@@ -174,6 +184,6 @@
 
 task run(dependsOn: "artifacts", type: JavaExec) {
     main = "com.javafx.experiments.dukepad.starter.StarterApplication"
-    classpath = files("build/artifacts/lib/org.eclipse.osgi_3.9.0.v20130529-1710.jar", "build/artifacts/dukepad.jar")
+    classpath = files("build/artifacts/lib/org.eclipse.osgi-3.9.0.v20130529-1710.jar", "build/artifacts/dukepad.jar")
     workingDir "build/artifacts"
 }
diff -r 9685fddbf8be apps/experiments/DukePad/modules/browser/src/main/java/com/javafx/experiments/dukepad/browser/BrowserApp.java
--- a/apps/experiments/DukePad/modules/browser/src/main/java/com/javafx/experiments/dukepad/browser/BrowserApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/browser/src/main/java/com/javafx/experiments/dukepad/browser/BrowserApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -58,7 +58,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class,this,null);
+        bundleContext.registerService(DukeApplication.class.getName(),this,null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/calculator/src/main/java/com/javafx/experiments/dukepad/calculator/CalculatorApp.java
--- a/apps/experiments/DukePad/modules/calculator/src/main/java/com/javafx/experiments/dukepad/calculator/CalculatorApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/calculator/src/main/java/com/javafx/experiments/dukepad/calculator/CalculatorApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -59,7 +59,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class,this,null);
+        bundleContext.registerService(DukeApplication.class.getName(),this,null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/calculator/src/main/java/com/javafx/experiments/dukepad/calculator/CalculatorUI.java
--- a/apps/experiments/DukePad/modules/calculator/src/main/java/com/javafx/experiments/dukepad/calculator/CalculatorUI.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/calculator/src/main/java/com/javafx/experiments/dukepad/calculator/CalculatorUI.java	Tue Nov 12 15:37:01 2013 +0100
@@ -245,7 +245,6 @@
     }
 
     @SuppressWarnings("deprecation")
-    @Override
     protected void impl_processCSS() {
         // No-op, no CSS for you! This is a JavaOne hack to speed up things.
     }
diff -r 9685fddbf8be apps/experiments/DukePad/modules/chess/src/main/java/com/javafx/experiments/dukepad/chess/ChessApp.java
--- a/apps/experiments/DukePad/modules/chess/src/main/java/com/javafx/experiments/dukepad/chess/ChessApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/chess/src/main/java/com/javafx/experiments/dukepad/chess/ChessApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -62,7 +62,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class,this,null);
+        bundleContext.registerService(DukeApplication.class.getName(),this,null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/clock/src/main/java/com/javafx/experiments/dukepad/clock/ClockApp.java
--- a/apps/experiments/DukePad/modules/clock/src/main/java/com/javafx/experiments/dukepad/clock/ClockApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/clock/src/main/java/com/javafx/experiments/dukepad/clock/ClockApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -57,7 +57,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class, this, null);
+        bundleContext.registerService(DukeApplication.class.getName(), this, null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/compass/src/main/java/com/javafx/experiments/dukepad/compass/app/CompassApp.java
--- a/apps/experiments/DukePad/modules/compass/src/main/java/com/javafx/experiments/dukepad/compass/app/CompassApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/compass/src/main/java/com/javafx/experiments/dukepad/compass/app/CompassApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -99,7 +99,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class,this,null);
+        bundleContext.registerService(DukeApplication.class.getName(),this,null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/core/src/main/java/com/javafx/experiments/dukepad/core/CoreActivator.java
--- a/apps/experiments/DukePad/modules/core/src/main/java/com/javafx/experiments/dukepad/core/CoreActivator.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/core/src/main/java/com/javafx/experiments/dukepad/core/CoreActivator.java	Tue Nov 12 15:37:01 2013 +0100
@@ -53,7 +53,7 @@
     // Not sure what happens if start is called twice. Is this even possible?
     @Override public void start(final BundleContext bundleContext) throws Exception {
         // Get Scene Service
-        Scene scene = bundleContext.getService(bundleContext.getServiceReference(Scene.class));
+        Scene scene = (Scene) bundleContext.getService(bundleContext.getServiceReference(Scene.class.getName()));
         // Load Theme CSS
         scene.getStylesheets().add(CoreActivator.class.getResource("/DukePadTheme.css").toExternalForm());
         root = new Root(scene);
@@ -67,7 +67,7 @@
         }, "("+ Constants.OBJECTCLASS+"=com.javafx.experiments.dukepad.core.DukeApplication)");
 
         // Register the core settings services
-        bundleContext.registerService(Settings.class, new AppearanceSettings(root.getHomeScreen()), null);
+        bundleContext.registerService(Settings.class.getName(), new AppearanceSettings(root.getHomeScreen()), null);
 
         if (PRINT_FPS) {
             PerformanceTracker p = PerformanceTracker.getSceneTracker(scene);
diff -r 9685fddbf8be apps/experiments/DukePad/modules/cubeGame/src/main/java/com/javafx/experiments/dukepad/cubeGame/CubeGameApp.java
--- a/apps/experiments/DukePad/modules/cubeGame/src/main/java/com/javafx/experiments/dukepad/cubeGame/CubeGameApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/cubeGame/src/main/java/com/javafx/experiments/dukepad/cubeGame/CubeGameApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -72,7 +72,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class, this, null);
+        bundleContext.registerService(DukeApplication.class.getName(), this, null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/lockScreen/src/main/java/com/javafx/experiments/dukepad/lockScreen/LockScreenApp.java
--- a/apps/experiments/DukePad/modules/lockScreen/src/main/java/com/javafx/experiments/dukepad/lockScreen/LockScreenApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/lockScreen/src/main/java/com/javafx/experiments/dukepad/lockScreen/LockScreenApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -203,7 +203,7 @@
         root.setOnMouseDragged(this::drag);
 
         // Register application service
-        bundleContext.registerService(DukeApplication.class, this, null);
+        bundleContext.registerService(DukeApplication.class.getName(), this, null);
     }
 
     @Override public void stop(BundleContext bundleContext) throws Exception {}
diff -r 9685fddbf8be apps/experiments/DukePad/modules/mediaPlayer/src/main/java/com/javafx/experiments/dukepad/mediaPlayer/MediaPlayerApp.java
--- a/apps/experiments/DukePad/modules/mediaPlayer/src/main/java/com/javafx/experiments/dukepad/mediaPlayer/MediaPlayerApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/mediaPlayer/src/main/java/com/javafx/experiments/dukepad/mediaPlayer/MediaPlayerApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -67,7 +67,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class,this,null);
+        bundleContext.registerService(DukeApplication.class.getName(),this,null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/notes/src/main/java/com/javafx/experiments/dukepad/notes/NotesApp.java
--- a/apps/experiments/DukePad/modules/notes/src/main/java/com/javafx/experiments/dukepad/notes/NotesApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/notes/src/main/java/com/javafx/experiments/dukepad/notes/NotesApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -66,7 +66,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class,this,null);
+        bundleContext.registerService(DukeApplication.class.getName(),this,null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/settings/src/main/java/com/javafx/experiments/dukepad/settings/SettingsApp.java
--- a/apps/experiments/DukePad/modules/settings/src/main/java/com/javafx/experiments/dukepad/settings/SettingsApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/settings/src/main/java/com/javafx/experiments/dukepad/settings/SettingsApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -135,7 +135,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class, this, null);
+        bundleContext.registerService(DukeApplication.class.getName(), this, null);
         // Load up any services that have already been registered
         ServiceReference[] services =
                 bundleContext.getAllServiceReferences("com.javafx.experiments.dukepad.core.Settings", null);
diff -r 9685fddbf8be apps/experiments/DukePad/starter/src/main/java/com/javafx/experiments/dukepad/starter/StarterApplication.java
--- a/apps/experiments/DukePad/starter/src/main/java/com/javafx/experiments/dukepad/starter/StarterApplication.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/starter/src/main/java/com/javafx/experiments/dukepad/starter/StarterApplication.java	Tue Nov 12 15:37:01 2013 +0100
@@ -89,8 +89,8 @@
             // START OSGI
             final BundleContext context = EclipseStarter.startup(equinoxArgs, null);
             // REGISTER SCENE AND STAGE AS SERVICES
-            context.registerService(Scene.class,scene, null);
-            context.registerService(Stage.class,primaryStage, null);
+            context.registerService(Scene.class.getName(),scene, null);
+            context.registerService(Stage.class.getName(),primaryStage, null);
 
             // Create tasks to install all jar bundles in bundles directory
             File bundleDir = new File("bundles");
diff -r 9685fddbf8be build.gradle
--- a/build.gradle	Tue Oct 29 09:43:15 2013 -0400
+++ b/build.gradle	Tue Nov 12 15:37:01 2013 +0100
@@ -852,7 +852,7 @@
         def buildNum = Integer.parseInt(javaBuildNumber)
         def minBuildNum = Integer.parseInt(jfxBuildJdkBuildnumMin)
         if (buildNum < minBuildNum) {
-            fail("java build number ($buildNum) < minimum build number ($minBuildNum)")
+            // fail("java build number ($buildNum) < minimum build number ($minBuildNum)")
         }
     }
 }
First I had to build OpenJDK 8.
./configure
make
http://hg.openjdk.java.net/jdk8/jdk8/ra ... uilds.html

Then I built the JamVM libjvm.so and added it to OpenJDK 8
http://draenog.blogspot.se/2011/02/open ... itory.html
http://labb.zafena.se/?p=576

git clone git://git.berlios.de/jamvm
cd jamvm
./autogen.sh --with-java-runtime-library=openjdk8
make
cp src/.libs/libjvm.so jdk8/build/linux-x86-normal-server-release/images/j2sdk-image/jre/lib/i386/jamvm/libjvm.so

Then i built OpenJFX 8
i had to pass some extra build options in order to build using only free software.
JAVA_HOME=/media/6a70b7e1-d155-49c1-82d4-37038b968941/jdk8/jdk8/build/linux-x86-normal-server-release/images/j2sdk-image/ ../gradle-1.4/bin/gradle -PBUILD_NATIVES=true -PCOMPILE_PANGO=true -PCOMPILE_WEBKIT=true -PGSTREAMER=true

Then i inserted the OpenJFX 8 sdk files into my OpenJDK 8 runtime
openjfx-8-graphics-rt$ cp build/linux-sdk/rt/lib/i386/* /media/6a70b7e1-d155-49c1-82d4-37038b968941/jdk8/jdk8/build/linux-x86-normal-server-release/images/j2sdk-image/jre/lib/i386/
openjfx-8-graphics-rt$ cp build/linux-sdk/rt/lib/ext/* /media/6a70b7e1-d155-49c1-82d4-37038b968941/jdk8/jdk8/build/linux-x86-normal-server-release/images/j2sdk-image/jre/lib/ext

And then i was able to compile Duke Pad using
cd apps/experiments/DukePad/
JAVA_HOME=/media/6a70b7e1-d155-49c1-82d4-37038b968941/jdk8/jdk8/build/linux-x86-normal-server-release/images/j2sdk-image/ /home/xranby/gradle-1.4/bin/gradle artifact

.. and start it on my ubuntu machine using
JAVA_HOME=/media/6a70b7e1-d155-49c1-82d4-37038b968941/jdk8/jdk8/build/linux-x86-normal-server-release/images/j2sdk-image/ /home/xranby/gradle-1.4/bin/gradle run
Last edited by xranby on Mon Feb 24, 2014 12:47 pm, edited 2 times in total.
Xerxes Rånby @xranby I once had two, then I gave one away. Now both are in use every day!
twitter.com/xranby

sirkope
Posts: 17
Joined: Wed Jun 13, 2012 7:39 pm

Re: Duke-Pad

Tue Nov 12, 2013 9:57 pm

Thank you for answering me here and there (http://www.raspberrypi.org/phpBB3/viewt ... ad#p452589
Tomorrow I will try do do it, and I will write to here my experience....

Unfortunatelly I've deleted my virtual ubuntu system, and I have install it again from scratch

User avatar
ric96
Posts: 1253
Joined: Sun Mar 17, 2013 6:03 am
Location: NOIDA, India
Contact: Website

Re: Duke-Pad

Fri Nov 15, 2013 2:40 am

xranby wrote:I tested to compile and run the Duke Pad source on a Ubuntu 12.04 machine using JamVM + OpenJDK 8 + OpenJFX 8 + Gradle 1.4.

How it looks when you run it:
https://twitter.com/xranby/status/40027 ... to/1/large
https://twitter.com/xranby/status/40027 ... to/1/large

I had to tweak the build.grade files a little in openjfx-8-graphics-rt to make it compile.

Code: Select all

diff -r 9685fddbf8be apps/experiments/DukePad/build.gradle
--- a/apps/experiments/DukePad/build.gradle	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/build.gradle	Tue Nov 12 15:37:01 2013 +0100
@@ -12,7 +12,17 @@
             "${rootProject.file('equinox/plugins/org.eclipse.osgi_3.9.0.v20130529-1710.jar')}",
             "${rootProject.file('equinox/plugins/org.eclipse.equinox.preferences_3.5.100.v20130422-1538.jar')}",
         )
-        //compile group: 'org.ecilpse', name: 'equinox.preferences', version: '3.5.100.v20130422-1538'
+        // download latest version from maven central
+        // http://search.maven.org/#search|ga|2|org.eclipse.equinox
+        compile 'org.eclipse.equinox:preferences:3.5.100-v20130422-1538' 
+        compile 'org.eclipse.equinox:registry:3.5.301-v20130717-1549'
+        compile 'org.eclipse.equinox:common:3.6.200-v20130402-1505'
+        compile 'org.eclipse.equinox:app:1.3.100-v20130327-1442'
+        // osgi framework
+        // 3.9.0.v20130529-1710
+        compile 'org.eclipse.birt.runtime:org.eclipse.osgi:3.9.0.v20130529-1710'
+        //compile 'org.eclipse.osgi:org.eclipse.osgi:3.7.1'
+        //compile 'org.apache.felix:org.apache.felix.framework:2.0.1'
     }
 
     jar {
@@ -174,6 +184,6 @@
 
 task run(dependsOn: "artifacts", type: JavaExec) {
     main = "com.javafx.experiments.dukepad.starter.StarterApplication"
-    classpath = files("build/artifacts/lib/org.eclipse.osgi_3.9.0.v20130529-1710.jar", "build/artifacts/dukepad.jar")
+    classpath = files("build/artifacts/lib/org.eclipse.osgi-3.9.0.v20130529-1710.jar", "build/artifacts/dukepad.jar")
     workingDir "build/artifacts"
 }
diff -r 9685fddbf8be apps/experiments/DukePad/modules/browser/src/main/java/com/javafx/experiments/dukepad/browser/BrowserApp.java
--- a/apps/experiments/DukePad/modules/browser/src/main/java/com/javafx/experiments/dukepad/browser/BrowserApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/browser/src/main/java/com/javafx/experiments/dukepad/browser/BrowserApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -58,7 +58,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class,this,null);
+        bundleContext.registerService(DukeApplication.class.getName(),this,null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/calculator/src/main/java/com/javafx/experiments/dukepad/calculator/CalculatorApp.java
--- a/apps/experiments/DukePad/modules/calculator/src/main/java/com/javafx/experiments/dukepad/calculator/CalculatorApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/calculator/src/main/java/com/javafx/experiments/dukepad/calculator/CalculatorApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -59,7 +59,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class,this,null);
+        bundleContext.registerService(DukeApplication.class.getName(),this,null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/calculator/src/main/java/com/javafx/experiments/dukepad/calculator/CalculatorUI.java
--- a/apps/experiments/DukePad/modules/calculator/src/main/java/com/javafx/experiments/dukepad/calculator/CalculatorUI.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/calculator/src/main/java/com/javafx/experiments/dukepad/calculator/CalculatorUI.java	Tue Nov 12 15:37:01 2013 +0100
@@ -245,7 +245,6 @@
     }
 
     @SuppressWarnings("deprecation")
-    @Override
     protected void impl_processCSS() {
         // No-op, no CSS for you! This is a JavaOne hack to speed up things.
     }
diff -r 9685fddbf8be apps/experiments/DukePad/modules/chess/src/main/java/com/javafx/experiments/dukepad/chess/ChessApp.java
--- a/apps/experiments/DukePad/modules/chess/src/main/java/com/javafx/experiments/dukepad/chess/ChessApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/chess/src/main/java/com/javafx/experiments/dukepad/chess/ChessApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -62,7 +62,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class,this,null);
+        bundleContext.registerService(DukeApplication.class.getName(),this,null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/clock/src/main/java/com/javafx/experiments/dukepad/clock/ClockApp.java
--- a/apps/experiments/DukePad/modules/clock/src/main/java/com/javafx/experiments/dukepad/clock/ClockApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/clock/src/main/java/com/javafx/experiments/dukepad/clock/ClockApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -57,7 +57,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class, this, null);
+        bundleContext.registerService(DukeApplication.class.getName(), this, null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/compass/src/main/java/com/javafx/experiments/dukepad/compass/app/CompassApp.java
--- a/apps/experiments/DukePad/modules/compass/src/main/java/com/javafx/experiments/dukepad/compass/app/CompassApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/compass/src/main/java/com/javafx/experiments/dukepad/compass/app/CompassApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -99,7 +99,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class,this,null);
+        bundleContext.registerService(DukeApplication.class.getName(),this,null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/core/src/main/java/com/javafx/experiments/dukepad/core/CoreActivator.java
--- a/apps/experiments/DukePad/modules/core/src/main/java/com/javafx/experiments/dukepad/core/CoreActivator.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/core/src/main/java/com/javafx/experiments/dukepad/core/CoreActivator.java	Tue Nov 12 15:37:01 2013 +0100
@@ -53,7 +53,7 @@
     // Not sure what happens if start is called twice. Is this even possible?
     @Override public void start(final BundleContext bundleContext) throws Exception {
         // Get Scene Service
-        Scene scene = bundleContext.getService(bundleContext.getServiceReference(Scene.class));
+        Scene scene = (Scene) bundleContext.getService(bundleContext.getServiceReference(Scene.class.getName()));
         // Load Theme CSS
         scene.getStylesheets().add(CoreActivator.class.getResource("/DukePadTheme.css").toExternalForm());
         root = new Root(scene);
@@ -67,7 +67,7 @@
         }, "("+ Constants.OBJECTCLASS+"=com.javafx.experiments.dukepad.core.DukeApplication)");
 
         // Register the core settings services
-        bundleContext.registerService(Settings.class, new AppearanceSettings(root.getHomeScreen()), null);
+        bundleContext.registerService(Settings.class.getName(), new AppearanceSettings(root.getHomeScreen()), null);
 
         if (PRINT_FPS) {
             PerformanceTracker p = PerformanceTracker.getSceneTracker(scene);
diff -r 9685fddbf8be apps/experiments/DukePad/modules/cubeGame/src/main/java/com/javafx/experiments/dukepad/cubeGame/CubeGameApp.java
--- a/apps/experiments/DukePad/modules/cubeGame/src/main/java/com/javafx/experiments/dukepad/cubeGame/CubeGameApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/cubeGame/src/main/java/com/javafx/experiments/dukepad/cubeGame/CubeGameApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -72,7 +72,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class, this, null);
+        bundleContext.registerService(DukeApplication.class.getName(), this, null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/lockScreen/src/main/java/com/javafx/experiments/dukepad/lockScreen/LockScreenApp.java
--- a/apps/experiments/DukePad/modules/lockScreen/src/main/java/com/javafx/experiments/dukepad/lockScreen/LockScreenApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/lockScreen/src/main/java/com/javafx/experiments/dukepad/lockScreen/LockScreenApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -203,7 +203,7 @@
         root.setOnMouseDragged(this::drag);
 
         // Register application service
-        bundleContext.registerService(DukeApplication.class, this, null);
+        bundleContext.registerService(DukeApplication.class.getName(), this, null);
     }
 
     @Override public void stop(BundleContext bundleContext) throws Exception {}
diff -r 9685fddbf8be apps/experiments/DukePad/modules/mediaPlayer/src/main/java/com/javafx/experiments/dukepad/mediaPlayer/MediaPlayerApp.java
--- a/apps/experiments/DukePad/modules/mediaPlayer/src/main/java/com/javafx/experiments/dukepad/mediaPlayer/MediaPlayerApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/mediaPlayer/src/main/java/com/javafx/experiments/dukepad/mediaPlayer/MediaPlayerApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -67,7 +67,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class,this,null);
+        bundleContext.registerService(DukeApplication.class.getName(),this,null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/notes/src/main/java/com/javafx/experiments/dukepad/notes/NotesApp.java
--- a/apps/experiments/DukePad/modules/notes/src/main/java/com/javafx/experiments/dukepad/notes/NotesApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/notes/src/main/java/com/javafx/experiments/dukepad/notes/NotesApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -66,7 +66,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class,this,null);
+        bundleContext.registerService(DukeApplication.class.getName(),this,null);
     }
 
     /** Called when app is unloaded at platform shutdown */
diff -r 9685fddbf8be apps/experiments/DukePad/modules/settings/src/main/java/com/javafx/experiments/dukepad/settings/SettingsApp.java
--- a/apps/experiments/DukePad/modules/settings/src/main/java/com/javafx/experiments/dukepad/settings/SettingsApp.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/modules/settings/src/main/java/com/javafx/experiments/dukepad/settings/SettingsApp.java	Tue Nov 12 15:37:01 2013 +0100
@@ -135,7 +135,7 @@
     /** Called when app is loaded at platform startup */
     @Override public void start(BundleContext bundleContext) throws Exception {
         // Register application service
-        bundleContext.registerService(DukeApplication.class, this, null);
+        bundleContext.registerService(DukeApplication.class.getName(), this, null);
         // Load up any services that have already been registered
         ServiceReference[] services =
                 bundleContext.getAllServiceReferences("com.javafx.experiments.dukepad.core.Settings", null);
diff -r 9685fddbf8be apps/experiments/DukePad/starter/src/main/java/com/javafx/experiments/dukepad/starter/StarterApplication.java
--- a/apps/experiments/DukePad/starter/src/main/java/com/javafx/experiments/dukepad/starter/StarterApplication.java	Tue Oct 29 09:43:15 2013 -0400
+++ b/apps/experiments/DukePad/starter/src/main/java/com/javafx/experiments/dukepad/starter/StarterApplication.java	Tue Nov 12 15:37:01 2013 +0100
@@ -89,8 +89,8 @@
             // START OSGI
             final BundleContext context = EclipseStarter.startup(equinoxArgs, null);
             // REGISTER SCENE AND STAGE AS SERVICES
-            context.registerService(Scene.class,scene, null);
-            context.registerService(Stage.class,primaryStage, null);
+            context.registerService(Scene.class.getName(),scene, null);
+            context.registerService(Stage.class.getName(),primaryStage, null);
 
             // Create tasks to install all jar bundles in bundles directory
             File bundleDir = new File("bundles");
diff -r 9685fddbf8be build.gradle
--- a/build.gradle	Tue Oct 29 09:43:15 2013 -0400
+++ b/build.gradle	Tue Nov 12 15:37:01 2013 +0100
@@ -852,7 +852,7 @@
         def buildNum = Integer.parseInt(javaBuildNumber)
         def minBuildNum = Integer.parseInt(jfxBuildJdkBuildnumMin)
         if (buildNum < minBuildNum) {
-            fail("java build number ($buildNum) < minimum build number ($minBuildNum)")
+            // fail("java build number ($buildNum) < minimum build number ($minBuildNum)")
         }
     }
 }
First i had to build OpenJDK 8.
./configure
make
http://hg.openjdk.java.net/jdk8/jdk8/ra ... uilds.html

Then i built OpenJFX 8
i had to pass some extra build options in order to build using only free software.
JAVA_HOME=/media/6a70b7e1-d155-49c1-82d4-37038b968941/jdk8/jdk8/build/linux-x86-normal-server-release/images/j2sdk-image/ ../gradle-1.4/bin/gradle -PBUILD_NATIVES=true -PCOMPILE_PANGO=true -PCOMPILE_WEBKIT=true -PGSTREAMER=true

Then i inserted the OpenJFX 8 sdk files into my OpenJDK 8 runtime
openjfx-8-graphics-rt$ cp build/linux-sdk/rt/lib/i386/* /media/6a70b7e1-d155-49c1-82d4-37038b968941/jdk8/jdk8/build/linux-x86-normal-server-release/images/j2sdk-image/jre/lib/i386/
openjfx-8-graphics-rt$ cp build/linux-sdk/rt/lib/ext/* /media/6a70b7e1-d155-49c1-82d4-37038b968941/jdk8/jdk8/build/linux-x86-normal-server-release/images/j2sdk-image/jre/lib/ext

And then i was able to compile Duke Pad using
JAVA_HOME=/media/6a70b7e1-d155-49c1-82d4-37038b968941/jdk8/jdk8/build/linux-x86-normal-server-release/images/j2sdk-image/ /home/xranby/gradle-1.4/bin/gradle artifact

.. and start it on my ubuntu machine using
JAVA_HOME=/media/6a70b7e1-d155-49c1-82d4-37038b968941/jdk8/jdk8/build/linux-x86-normal-server-release/images/j2sdk-image/ /home/xranby/gradle-1.4/bin/gradle run
Wow , great!!!
Bt the question now is will or how will it run on the pi??
Since u have used jdk8 and as far as i know pi still uses jdk7, will it still run??
My apologies for shameless YouTube Plugs...
youtube.com/sahajsarup
twitter @sahajsarup
skype srics1996
e-mail: [email protected]
Blog: http://www.geektillithertz.com/wordpress
Web: http://www.geektillithertz.com

User avatar
xranby
Posts: 539
Joined: Sat Mar 03, 2012 10:02 pm
Contact: Website

Re: Duke-Pad

Fri Nov 15, 2013 9:18 am

ric96 wrote: Bt the question now is will or how will it run on the pi??
Since u have used jdk8 and as far as i know pi still uses jdk7, will it still run??
No it will not run using jdk7, you need to use openjdk8+openjfx8 or oracle jdk8.

It is possible to compile OpenJDK 8 from source, using JDK 7 as the "bootstrap" jvm.
You can then combine OpenJDK 8 Classes (jre/lib/rt.jar) with the JamVM or Zero JVM (jre/lib/arm/server/libjvm.so). JamVM is currently the fastest open-source JVM that you can compile yourself and use on the Pi in combination with OpenJDK 8 + OpenJFX 8.

Once you have OpenJDK 8 available then you cross compile your own version of OpenJFX 8 for use on the Pi.
https://wiki.openjdk.java.net/display/O ... Hard+Float

It will be easy to install builds of openjdk 8 + openjfx 8 on the pi when the ARM Linux distributions such as Debian, Raspbian, Arch Linux or Fedora decide to build and package it.


You can also test one of the Oracle provided JDK8 Early Access builds:
https://jdk8.java.net/download.html
Try run one of the pre-built OpenJFX examples on the Pi to get the hang of it.
https://wiki.openjdk.java.net/display/O ... spberry+Pi

When the regular JavaFX examples run as expected then try copy the DukePad build/artifacts/* files to the Pi and run them using the OpenJDK 8 + OpenJFX 8 or JDK 8 installation.
https://wiki.openjdk.java.net/display/OpenJFX/DukePad
Xerxes Rånby @xranby I once had two, then I gave one away. Now both are in use every day!
twitter.com/xranby

User avatar
ric96
Posts: 1253
Joined: Sun Mar 17, 2013 6:03 am
Location: NOIDA, India
Contact: Website

Re: Duke-Pad

Sat Nov 16, 2013 5:10 am

sorry i am still not able to compile it :cry:
cannot work around gradle, jdk installs well :oops:
a bit more detailed guide would be appreciated!!!
My apologies for shameless YouTube Plugs...
youtube.com/sahajsarup
twitter @sahajsarup
skype srics1996
e-mail: [email protected]
Blog: http://www.geektillithertz.com/wordpress
Web: http://www.geektillithertz.com

rohanakagreg
Posts: 2
Joined: Sun Jan 19, 2014 8:50 pm

Re: Duke-Pad

Sun Jan 19, 2014 9:21 pm

Managed to get this mostly compiled, except for the calulator model.

[*] Make sure your java home is set to a JDK 1.8 installation

Code: Select all

echo %JAVA_HOME% on windows
echo $JAVA_HOME on all unix variants including OSX
[*]Replace line 10-16 in build.gradle with

Code: Select all

 /*
        compile files(
            "${rootProject.file('equinox/plugins/org.eclipse.equinox.common_3.6.200.v20130402-1505.jar')}",
            "${rootProject.file('equinox/plugins/org.eclipse.osgi_3.9.0.v20130529-1710.jar')}",
            "${rootProject.file('equinox/plugins/org.eclipse.equinox.preferences_3.5.100.v20130422-1538.jar')}",
        )
        */
        compile 'org.eclipse.equinox:common:3.6.200-v20130402-1505'
        compile 'org.eclipse.birt.runtime:org.eclipse.osgi:3.9.0.v20130529-1710'
        compile 'org.eclipse.birt.runtime:org.eclipse.equinox.preferences:3.5.100.v20130422-1538'
   
[*] Comment the calculator project on line 61of build.gradle

Code: Select all

/*
project(":calculator") {
    dependencies {
        compile project(":core")
    }
}
*/
[*] Remove calculator from the include list in settings.gradle

Code: Select all

include "starter", "browser", "chess", "clock", "compass", "core", "cubeGame", "lockScreen", "mediaPlayer", "notes", "settings", "weather"
[*] Comment out the calculator module on line 5 in settings.gradle

Code: Select all

//project(":calculator").projectDir = file("modules/calculator")
[/list]

Good luck.

rohanakagreg
Posts: 2
Joined: Sun Jan 19, 2014 8:50 pm

Re: Duke-Pad

Sun Jan 19, 2014 11:12 pm

commenting out the override annotation on line 248 of CalculatorUI solves the compilation error for the calculator module.

sirkope
Posts: 17
Joined: Wed Jun 13, 2012 7:39 pm

Re: Duke-Pad

Wed Feb 12, 2014 2:28 pm

Has anyone built the hardware? I have the case, almost every parts, but one thing is unclear, how does they powered the LCD? And how they connect the on-off switch with the capacitor? If I put the Rpi and the HDMI converter to the case, there's no room to use their power connector. Rpi can be powered trough its USB port, USB hub also could be powered using it's mini usb connector, but the HDMI still needs power. The descripton only mention some item in the parts list:

•Small amount of wire for power wiring and i2C
•650uf 6.3v capacitor to keep Pi running while switching screen on/off
•2P3R Slide Switch
•1ft USBA to MiniUSB B
•USB A connector for power from battery

Any idea?

Benj.L
Posts: 3
Joined: Wed Apr 16, 2014 2:24 pm

Re: Duke-Pad

Wed Apr 16, 2014 4:43 pm

Hi guys,

i've been working on this for days, almost there, but still cannot deploy the application on the RPi...and very frustrated. Hope somebody that has already been doing this with success may help me out. What I have tried are listed below:

1. set up the RPi with Java SEE 8: download JDK from here: http://download.oracle.com/otn-pub/java ... flt.tar.gz

[email protected] ~ $ javava -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode)

2. run Java FX demo BrickBreaker.jar with success. Downloaded the demo jar from here:
http://download.oracle.com/otn-pub/java ... -linux.zip

3. download the dukepad project from here, which indicated in the wiki: http://hg.openjdk.java.net/openjfx/8/ma ... tip.tar.gz

4. Build the project with IntelliJ IDEA 13 as per the vague wiki instructions, two problems found.
problem 1: maven did not download all dependent packages successfully. you will need to do the job manually
File => Project Structure => Libraries, click on those packages,for example, org.eclipse.osgi...., you will find them marked in red in the panel next to it, which means maven did not catch them from the web. you then click the "Edit" button and search for them from the maven repository. Note: delete the prefix and the tailing version info before you click "find", then choose the exact version from the drop-down list found.
Handle all the packages this way and you will get them in the directory: rt/apps/experimental/DukePad/lib

problem 2: there's a compile error in CalculatorUI.java Line 249:

@SuppressWarnings("deprecation")
@Override
protected void impl_processCSS() {
// No-op, no CSS for you! This is a JavaOne hack to speed up things.
}
whatever, i just comment this method out.


With all these being done, i built the project successful with 12 warnings. The output files under dukepad/built/artifacts are:
artifacts/
├── apps
│   ├── browser.jar
│   ├── calculator.jar
│   ├── chess.jar
│   ├── clock.jar
│   ├── compass.jar
│   ├── cubeGame.jar
│   ├── lockScreen.jar
│   ├── mediaPlayer.jar
│   ├── notes.jar
│   ├── settings.jar
│   └── weather.jar
├── bundles
│   ├── core.jar
│   ├── grizzly-framework-2.3.1.jar
│   ├── grizzly-http-2.3.1.jar
│   ├── grizzly-http-server-2.3.1.jar
│   ├── grizzly-rcm-2.3.1.jar
│   ├── javax.json-1.0.1.jar
│   ├── javax.websocket-api-1.0.jar
│   ├── networking.jar
│   ├── org.eclipse.equinox.common-3.6.200.v20130402-1505.jar
│   ├── org.eclipse.equinox.preferences-3.5.100.v20130422-1538.jar
│   ├── org.eclipse.osgi-3.9.0.v20130529-1710.jar
│   ├── pi4j-core-0.0.5.jar
│   ├── pi4j-native-0.0.5-hard-float.so
│   ├── pi4j-native-0.0.5-soft-float.so
│   ├── tyrus-container-grizzly-1.0.jar
│   ├── tyrus-core-1.0.jar
│   ├── tyrus-server-1.0.jar
│   ├── tyrus-spi-1.0.jar
│   └── tyrus-websocket-core-1.0.jar
└── dukepad.jar

2 directories, 31 files

you can see that the manually downloaded packages are included in the "bundle" automatically.

to be continued...

Benj.L
Posts: 3
Joined: Wed Apr 16, 2014 2:24 pm

Re: Duke-Pad

Wed Apr 16, 2014 4:44 pm

continue:

4. copy the all the files above to RPi, write a script as per the wiki, word for word. and then run the script:

[email protected] ~ $ cd /opt/dukepad
[email protected] /opt/dukepad $ ls
apps bundles dukepad.jar run.sh
[email protected] /opt/dukepad $ .cat run./run.shsudo ./run.sh
Using /usr/bin/java
Prism pipeline init order: es2
Using platform text rasterizer
Using native-based Pisces rasterizer
Using dirty region optimizations
Using system sized mask for primitives
Not forcing power of 2 sizes for textures
Using hardware CLAMP_TO_ZERO mode
Opting in for HiDPI pixel scaling
Prism pipeline name = com.sun.prism.es2.ES2Pipeline
Loading ES2 native library ... prism_es2_eglfb
succeeded.
GLFactory using com.sun.prism.es2.EGLFBGLFactory
(X) Got class = class com.sun.prism.es2.ES2Pipeline
Initialized prism pipeline: com.sun.prism.es2.ES2Pipeline
Maximum supported texture size: 2048
Non power of two texture support = true
Graphics Vendor: Broadcom
Renderer: VideoCore IV HW
Version: OpenGL ES 2.0
vsync: true vpipe: true
Exception in thread "main" Exception in thread "JavaFX Application Thread" java.lang.NoClassDefFoundError: org/osgi/framework/BundleException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:340)
at com.sun.javafx.application.LauncherImpl$2.run(LauncherImpl.java:330)
at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:335)
at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:301)
at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:298)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:298)
at com.sun.glass.ui.lens.LensApplication$RunnableEvent.dispatch(LensApplication.java:182)
at com.sun.glass.ui.lens.LensApplication._runLoop(LensApplication.java:860)
at com.sun.glass.ui.lens.LensApplication.access$1800(LensApplication.java:58)
at com.sun.glass.ui.lens.LensApplication$4.run(LensApplication.java:917)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.ClassNotFoundException: org.osgi.framework.BundleException
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 13 more
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
Caused by: java.lang.NullPointerException
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:362)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:305)
... 5 more
QuantumRenderer: shutdown

no luck. tried to solve the run time problem but no clue. It seems like a very basic "class not found error", but....

Please help.... with many many thanks if can tell me why....

Benj.L
Posts: 3
Joined: Wed Apr 16, 2014 2:24 pm

Re: Duke-Pad

Wed Apr 16, 2014 4:51 pm

continued:
IntelliJ IDEA: how to manually download imported packages.
IntelliJ IDEA Duke Project Import.png
IntelliJ IDEA Duke Project Import.png (54.67 KiB) Viewed 3399 times

aristocrates
Posts: 5
Joined: Sun Apr 14, 2013 2:31 am

Re: Duke-Pad

Fri Jul 25, 2014 5:27 am

Hi, sorry to hijack this thread a bit, but can anyone provide a link/some more detailed information regarding the hardware setup (like, for instance, the layout of where they fit the components inside the case, instructions on how to assemble the case itself)? For example, are you just supposed to connect the pieces in order of the numbering in horizontal layers? The official page (https://wiki.openjdk.java.net/display/OpenJFX/DukePad) seems a bit sparse regarding the hardware details.

Edit: Perhaps this is useful http://diy-dukepad.webnode.hu/

sirkope
Posts: 17
Joined: Wed Jun 13, 2012 7:39 pm

Re: Duke-Pad

Tue Jul 29, 2014 12:04 pm

I've made this homepage, I hope it helps you.

User avatar
ric96
Posts: 1253
Joined: Sun Mar 17, 2013 6:03 am
Location: NOIDA, India
Contact: Website

Re: Duke-Pad

Sat Nov 19, 2016 6:04 pm

long time no see....
ive got the application working fine on my workstation on intellij IDEA. but executing it on the pi gives me the following error:

Code: Select all

[email protected]:/opt/dukepad $ sudo ./run.sh
Using 
Error: Could not find or load main class com.javafx.experiments.dukepad.starter.StarterApplication
My apologies for shameless YouTube Plugs...
youtube.com/sahajsarup
twitter @sahajsarup
skype srics1996
e-mail: [email protected]
Blog: http://www.geektillithertz.com/wordpress
Web: http://www.geektillithertz.com

User avatar
ric96
Posts: 1253
Joined: Sun Mar 17, 2013 6:03 am
Location: NOIDA, India
Contact: Website

Re: Duke-Pad

Sun Nov 20, 2016 4:50 pm

ric96 wrote:long time no see....
ive got the application working fine on my workstation on intellij IDEA. but executing it on the pi gives me the following error:

Code: Select all

[email protected]:/opt/dukepad $ sudo ./run.sh
Using 
Error: Could not find or load main class com.javafx.experiments.dukepad.starter.StarterApplication
https://www.youtube.com/watch?v=M95KLJCnsPk
My apologies for shameless YouTube Plugs...
youtube.com/sahajsarup
twitter @sahajsarup
skype srics1996
e-mail: [email protected]
Blog: http://www.geektillithertz.com/wordpress
Web: http://www.geektillithertz.com

Return to “General discussion”