Run Java application on Windows Embedded Handheld 6.5 - java

I want to run a Java Application on an Intermec scanner with Windows Embedded Handheld 6.5 Operating System. I used this tutorial.
The problem is I don't know how to run my application on the Intermec scanner.
I downloaded and installed PhoneME Advanced and PhoneME Feature from here.
I searched for JavaFX like in this tutorial, but when I follow the link to JavaFX on the Oracle site, it says it's included in the current JDK, which I can't install ("The file *** cannot be opened. Either is not signed with a trusted certificate, or one of its components cannot be found"). I tried installing the JRE but I get the same message.
Help please?

The Intermec Java installation doc is very outdated and related to IBM WEME, which is no longer be sold for a long time.
The IBM J9 licensing is strange and can only be achieved with a larger number of installations. But you may get a validation copy from microdoc.com
You may go with another JAVA VM like PhoneME or CrEme. JavaFX seems to be discontinued, whereas IBM J9 or CrEme are more or less current and supported products.
Which JVM you choose depends also on your intention. The Intermec Java Datacollection jar will only run with J9. But you can write your own JNI for the native Scanner API.

Related

IBM Java on Linux

What would be the use case of installing IBM Java on a Linux machine? We tested our application on Linux using Oracle Java but one of ours customers installed it on a machine which only has IBM Java and the application gives errors for some missing classes and jars.
I'm assuming that the IBM java would probably have been installed because some IBM products mandate use of IBM java but this should not be a deterrent to install Oracle Java in addition to IBM java. Is my understanding correct?
Please share your thoughts.
I believe IBM doesn't ship its Java as an independent package -- so, yes, if IBM Java is present it's because an IBM product was installed that came with the IBM Java environment. (IBM supports Java on some platforms Sun doesn't; I believe the reverse is also true -- I don't think IBM bothers producing its own Java for Solaris, for obvious reasons.)
There's no problem having multiple Java's installed, each in its own directory. In some Linuxes, the alternatives mechanism can be used to select which Java is the default when you type java at the command line; in others, you would have to manually change the path or adjust symbolic links appropriately (the later is what alternatives does semi-automagically).
If you're working in Eclipse, its configuration menus will let you pick which installed copy of Java it will use to execute/debug applications, either on a workspace-default level or per launch.
(I have something like eight JREs/JDKs installed on my Red Hat machine -- a mix between Sun and IBM. Some are for my own use, for testing code for compatibility or trying to reproduce customer bug reports. Some were installed because a particular tool shipped with its own JRE rather than risk possible incompatabilities with another version; that's the only reason I still have a Java 1.5 JRE installed, for example. It's an annoyance, and it slightly belies Java's original promise of "write once, run everywhere", but it does work.)
There is nothing stopping you from having multiple installs of Java on a single linux system. However when running your application, you need to make sure that you are using the oracle version of java and not the IBM version.
which java
and
java --version
can help you find which version of java you are using.
Java is usually installed under /usr/lib/jvm or something similar to that. Checking there can help you find which java installs you have available.
You are correct that IBM java comes with IBM product installation - IBM does not ship their Java as standalone product. However, they provide provision to download their JRE for Linux from developerworks.
Ideally product running on Oracle JRE should run on IBM JRE and vice versa. However, to ensure that each product on the system runs on the JRE they are tested on, set java home properly for respective products. In case both the products use the same system-wide environment variable (which should not be the case anyway) - you may need to tweak your product settings so it does not break any IBM product running on the system.
As long as you properly isolate multiple JREs as used by different products through product/system property settings, there should not be any issue.

Headless JDK7 for embedding

Where can I find the headless version of JDK7 for the linux-i586 architectures?
I couldn't find anything on Oracle's page, maybe I am just blind, or there is no such pre-compiled JDK...
The purpose is that I want to port the runtime library of the JDK to a operating system with a custom JVM, and I think this should be the one suiting best for my needs.
AFAIK there isn't a special headless version of Java 7. But you can easily tell ordinary Java to run in headless mode. For example:
java -Djava.awt.headless=true com.acme.project.Main
For more information on headless Java, read this Oracle page:
Using Headless Mode in the Java SE Platform
I would need this version to keep it as slim as possible.
Your only options would appear to be:
Ask Oracle if they can provide you with a special build (for money!!!).
Attempt to create your own stripped down build from the OpenJDK sources.
Beware that the Oracle binary distribution licence forbids you from distributing a JRE produced by "cutting down" a normal one. I don't know if this applies to a JRE that you have built from source code. Read the relevant license agreements carefully.
But my advice would be to just use a standard JRE installer.

Javax.comm API on 64-bit Windows

I am using the javax.comm API to help my program communicate with hardware over serial port. I am using the Windows 7 and NetBeans IDE 9.
I used the common Java program to check the available ports on my PC. The program compiled and ran without error. However it returned nothing.
What can I do to use the javax.comm API on Windows? It seems win32com.dll does not work with a 64-bit operating system.
This is how I got it to work.
I've tested it using JDK 1.6 (32bit) on my Windows 7 64bit machine.
Install 32bit JDK.
Copy 'win32com.dll' to JDK_HOME\jre\bin.
Copy 'javax.comm.properties'to to JDK_HOME\jre\lib.
Copy 'comm.jar'to to JDK_HOME\jre\lib\ext.
Now run your program and it should work.
Recent 2.2pre versions of RXTX include binaries for 64-bit windows. I think the latest RXTX information source has changed to this: http://rxtx.qbang.org instead of http://www.rxtx.org though.
At one point the RXTX library included drop-in support for using the javax.comm api. I'm not sure if it still does, but the main change then to use the "native" RXTX packaging was primarily just a package name change.
it seem the win32com.dll does not work with 64-bit Operating system
I think that is correct. In fact, according to the relevant download page, Oracle no longer supports the javax.comm API for any Windows platform.
However, I found this page which has a 64bit build of the DLL, among other things.
EDIT
By an astounding piece of research (i.e. following the links and reading stuff) I found the download page for the latest RXTX, which claims to have binaries for various platforms. If your platform is not there, try building from source. If that doesn't work, consider investing the effort in making it work.
I've integrated RXTX libraries into some of my earlier projects and i found out this bug it has while working with comm ports under windows, so you might want to check this first before going into some serious app design.
Communication works fine, never had any problem with that, but once you open the port you cannot close it and reopen, if you use method provided for closing port, your app just hangs, no exception no nothing. I found later the same behavior described by users on web, but never really found the solution to this problem.
Again, this might help you save some time, check it first.
Latest release, which is this http://rxtx.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip, doesn't have this issue no more. Unfortunately i think its solved only for windows, its still there on Linux binaries, and i haven't tried it on mac.
Have you got a look on RXTX ? I think it is still active.
I had this issue...on a 64 bit machine..running windows 7
a legacy application developed in jdk 1.4, for 32 bit windows... and using the win32 comm api binary
i tried the RXTX binary for 64 bit and i was able to communicate with my device on some level... but... there were other problems as my application referenced a version of the jpos library that internally was using the comm-api (had import javax.comm.*... in some Serial...Listener class)....
I installed a 32 bit jdk and setup the comm-api binaries for 32 bit windows as directed here...setup comm api on windows
all was fine afterwards
You might be interested at an alternative library I've authored: http://code.google.com/p/jperipheral/

Where can I find a particular version of the IBM JDK/JRE for Windows?

I'm trying to get a rather JDK-sensitive piece of Oracle software working with Websphere, and I need to find some particular versions of the IBM JDK to try. The problem is that IBM doesn't really make these readily available like Sun/Oracle does with theirs, and all the versions I've been able to get my hands on haven't worked for one reason or another.
Specifically, I need one of:
IBM Java 5 SR9 for Windows (ideal)
IBM Java 5 SR2 for Windows
IBM Java 5 SR10 for Windows
How could I get these directly from IBM? My company has a support contract for Websphere, and I hopefully could have one of our Websphere engineers download it if I can tell them where to go.
I don't know if this is still true(but this was certainly true in the past), but here is the story.
Due to Java License restrictions earlier, the JDK cannot be provided alone by vendors like IBM.
I am unable to pull this info from any IBM site at the moment but i am pretty certain about these license restrictions in the past.
Here is a post by another gentleman in this space:
From : http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14514070
Unfortunately you can get hold of the JDK only as part of another IBM product (say, Websphere or any Rational product) that you purchased. Our licensing agreement with Sun/Oracle forbids us from providing direct downloads of the IBM JDK on any platforms that Oracle/Sun also support (namely Windows and Linux). If you look at the Java downloads section of the developerWorks website, you'll only find SDKs for AIX, z/OS and Linux on System p/z, since those are IBM owned platforms that Oracle doesn't support.
Since the JDK is shipped along with Websphere/Rational/Tivoli products, you can use it if you already have one of them deployed(though even then you may have SR8 FP1, unless you also install the very latest fix packs for those products).
(Unless you work for IBM) there is no way to download the IBM JDK separately. It's shipped with the IBM Rational Suite of Software IBM develops.
The IBM JDK comes also with IBM Java Profiler (which isn't free).
The Eclipse Platform that is found here https://www.ibm.com/developerworks/eclipse/downloads/helios/#download is similar to the Eclipse download found on the Eclipse Site. IBM makes it easier for those who can't afford WebSphere Application Developer or Rational Application Developer (which are both Eclipse flavour) to use Eclipse.
Currently, (July 12 2017) you can find the older bundles for java 6, 7 and 7.1 here https://www.ibm.com/developerworks/java/jdk/eclipse/index.html
The latest one can be downloaded from here https://developer.ibm.com/javasdk/downloads/eclipse/
Yes IBM JRE/JDK is typically shipped with products, not stand-alone.
How about you get the WebSphere version that is the target for your activity and install that? Won't that give you what you need? The Single server edition is comparatively small footprint.
Here's a page with some IBM JDKs made available on developerWorks that may be useful to you.
https://www.ibm.com/developerworks/java/jdk/
the SR9 fix pack for WAS V6.1.0.25 is available here - http://www-01.ibm.com/support/docview.wss?uid=swg24023276. Click on the FTP link to download the PAK file (and rename to zip).
Previously I've found that the Eclipse bundles from IBM also contain the IBM JVM. This might still be the case but the bundles are too big for me to check now.
See http://www.ibm.com/developerworks/eclipse/downloads/
I hate to answer with the obvious... but if you have a support contract with IBM, why not just call IBM support? If you haven't seen it already, IBM's main JDK page is at: https://www.ibm.com/developerworks/java/jdk/.
However, the Windows offerings are pretty pitiful. IBM hasn't released a new JDK for the Windows platform since early-2006. That JDK was of the Java 5 generation, but there's no indication on the download page (or in the installer's file name) of an SR version. I can't install it and check for you, because of the other Windows caveat of which I hope you're aware: The IBM JDK will not install on a Windows machine unless the installer detects an IBM BIOS.
Given that IBM sold their PC division to Lenovo, I'm not even sure that it is possible AT ALL to install their standalone JDK on a contemporary box. I would contact IBM support if you have a contract... they might be able to tell you differently.
Either way, the preceding answer points at another possibility. IBM frequently bundles its JDK/JRE, without the crazy restrictions found in the standalone version, inside of other downloads. For instance, I know that WebSphere Community Edition (i.e. IBM's version of Apache Geronimo) comes with one. Good luck finding the specific version you need... but if you do, and don't mind the possibility of violating some license legalese, then you can just ZIP up that directory and copy it to the target machine.
This whole topic is a damn shame. In terms of bechmarks and runtime performance, the IBM JDK/JRE has always been awesome. However, on the larger "ecosystem" level it's always sucked.

Java Deployment

When deploying a Java application, can I assume that every computer has java, and so is able to run my application? I've just created a java app, which works on my computer, but my boss (who generally uses .NET) claims it doesn't work at all. Should I assume that this will happen often, or will most consumers have java?
I think it is better to NOT assume that all computers have JRE installed. Just like development practice you need to have a deployment strategy for your application.
Here are some of the questions you need to find answers to arrive at a better deployment strategy:
Which version of JRE is needed, what if the computers on which the application is run has an older version of JRE ?
What all platforms (windows, linux or both ) your application is going to be run ?
Is there a IT policy that ensures that a standard version of JRE is available on all the hosts ? In this case
you can make a valid assumption that all computers on which application is run has the JRE installed?
If you need a specific version of JRE which is not available on all the computers may be you have to bundle the
JRE along with your application.
I think that you should provide to your users a way to download/install the jre (probably a link) with a friendly message explaining the need to install it.
Java is widely use.
NOTE In example, following is an example of the applet tag:
<applet code=Applet1.class width="200" height="200">
Your browser does not support the <code>applet</code> tag.
</applet>
If you are deploying your application in a traditional way, there are some java application installers that handle it for you.
I hope it helps you.
You can also deploy a jre along with your application. Many 3rd party applications do this to ensure that the proper version of Java is available on the system. There are pros and cons with each approach.
You will want to refer to the license information about redistributing the jre contained in the jre folder ( e.g C:\Program Files (x86)\Java\jre6\README.txt - or wherever your install is ) to ensure you follow the proper procedures.
There are a number of solutions. You should not assume that everyone has Java installed. You can use web start for instance which will help with the setup. You can find some advice here.
More info about web start here.

Categories

Resources