JSch with RoboVM

333 views
Skip to first unread message

Mahmoud Ghonim

unread,
Sep 21, 2014, 2:45:41 PM9/21/14
to rob...@googlegroups.com
Dear
I'm using JSch api in my project to uploading files on my sftp  So I need to know if it will be compiled on  RoboVM or not  in case not Please tell me about how can I upload my files by method can I compile it by RoboVM.
Thanks & Regards 
 
 

Niklas Therning

unread,
Oct 8, 2014, 2:32:52 PM10/8/14
to Mahmoud Ghonim, rob...@googlegroups.com
From searching stackoverflow it seems like JSch works on Android which means it will quite likely work on RoboVM as well. Please give it a try and let us know what happens.

--
You received this message because you are subscribed to the Google Groups "RoboVM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to robovm+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Mahmoud Ghonim

unread,
Oct 9, 2014, 11:15:48 AM10/9/14
to rob...@googlegroups.com

I tried to use the Sftp example in my own code, for sending a file to a remote server.
But I'm getting this error on the session.connect():
Session.connect: java.security.NoSuchAlgorithmException: DH KeyPairGenerator not available
com.jcraft.Session.connect(Session.java)
 
 
 

Niklas Therning

unread,
Oct 10, 2014, 7:10:45 AM10/10/14
to Mahmoud Ghonim, rob...@googlegroups.com
(CC:ing the RoboVM mailing list as well. Please use "reply all" to keep this on the list.)

That kind of error probably means that the classes implementing that algorithm aren't linked in. Try to add

<foceLinkClasses>
  <pattern>**</pattern>
</forceLinkClasses>

to your robovm.xml and see if that works better. This makes sure that everything in the classpath is linked in, even classes not referenced by your app code. It will result in a large executable so you will probably want to make that pattern more specific but using the ** pattern will at least tell you whether JSch works at all with RoboVM.


On Thu, Oct 9, 2014 at 4:21 PM, Mahmoud Ghonim <eng.mahm...@gmail.com> wrote:
I tried to use the Sftp example in my own code, for sending a file to a remote server But I'm getting this error on the session.connect():
 
java.security.NoSuchAlgorithmException: DH KeyPairGenerator not available
java.lang.NullPointerException
Please help

Mahmoud Ghonim

unread,
Oct 11, 2014, 1:05:54 PM10/11/14
to rob...@googlegroups.com
when I insert this pattern 
<foceLinkClasses>
<pattern>**</pattern>
</forceLinkClasses>
 error occured and I couldn't run my ios project
 
then I tried to use another api could u please tell my which api can I use to upload or download files to SFTP

Niklas Therning

unread,
Oct 11, 2014, 1:26:46 PM10/11/14
to Mahmoud Ghonim, rob...@googlegroups.com
The opening tag is incorrect. foce -> force

<forceLinkClasses>
  <pattern>**</pattern>
</forceLinkClasses>

If you post your complete robovm.xml here we can help you with any errors you might have in it.


--

Mahmoud Ghonim

unread,
Oct 12, 2014, 3:49:09 AM10/12/14
to rob...@googlegroups.com
Dear Niklas ,
 
Error Message:
 com.jcraft.jsch.JSchException: Session.connect: java.security.NoSuchAlgorithmException: KeyPairGenerator DH implementation not found

at com.jcraft.jsch.Session.connect(Session.java)

at com.jcraft.jsch.Session.connect(Session.java)

at com.nnaass.experimental.db.Uploading.<init>(Uploading.java)

at com.nnaass.experimental.db.DB.create(DB.java)

at com.badlogic.gdx.backends.iosrobovm.IOSGraphics.draw(IOSGraphics.java)

at com.badlogic.gdx.backends.iosrobovm.IOSGraphics$1.draw(IOSGraphics.java)

at org.robovm.apple.uikit.UIView.$cb$drawRect$(UIView.java)

at org.robovm.apple.uikit.UIApplication.main(Native Method)

at org.robovm.apple.uikit.UIApplication.main(UIApplication.java)

at com.nnaass.experimental.db.IOSLauncher.main(IOSLauncher.java)

 
 Robovm.xml

 <forceLinkClasses>

    <pattern>com.badlogic.gdx.scenes.scene2d.ui.*</pattern>

    <pattern>com.badlogic.gdx.physics.bullet.**</pattern>

    <pattern>com.android.okhttp.HttpHandler</pattern>

    <pattern>com.android.okhttp.HttpsHandler</pattern>

    <pattern>com.android.org.conscrypt.**</pattern>

    <pattern>com.android.org.bouncycastle.jce.provider.BouncyCastleProvider</pattern>

    <pattern>com.android.org.bouncycastle.jcajce.provider.keystore.BC$Mappings</pattern>

    <pattern>com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi</pattern>

    <pattern>com.android.org.bouncycastle.jcajce.provider.keystore.bc.BcKeyStoreSpi$Std</pattern>

    <pattern>com.android.org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi</pattern>

    <pattern>com.android.org.bouncycastle.crypto.digests.AndroidDigestFactoryOpenSSL</pattern>

    <pattern>org.apache.harmony.security.provider.cert.DRLCertFactory</pattern>

    <pattern>org.apache.harmony.security.provider.crypto.CryptoProvider</pattern>

    <pattern>org.sqlite.JDBC</pattern>

    <pattern>org.sqlite.JDBC</pattern>

    <pattern>SQLite.JDBC2z.*</pattern>

    <pattern>org.h2.Driver</pattern>

    <pattern>SQLite.JDBCDriver.*</pattern>

<pattern>com.jcraft.jsch.jce.Random</pattern>

<pattern>com.jcraft.jsch.jce.AES128CTR</pattern>

<pattern>com.jcraft.jsch.jce.AES256CBC</pattern>

<pattern>com.jcraft.jsch.jce.AES192CBC</pattern>

<pattern>com.jcraft.jsch.jce.AES128CBC</pattern>

<pattern>com.jcraft.jsch.jce.TripleDESCTR</pattern>

<pattern>com.jcraft.jsch.jce.DH</pattern>

<pattern>com.jcraft.jsch.DHG14</pattern>

<pattern>com.jcraft.jsch.DHG1</pattern>

<pattern>com.jcraft.jsch.jce.SHA1</pattern>

<pattern>com.jcraft.jsch.jce.**</pattern>

<pattern>java.util.logging.ConsoleHandler</pattern>

<pattern>java.util.logging.SimpleFormatter</pattern>

<pattern>org.apache.commons.vfs2.**</pattern>

<pattern>com.jcraft.jsch.**</pattern>   

  </forceLinkClasses>



When I removed all pattern and  put  <pattern>**</pattern> Error Message Occured

Mahmoud Ghonim

unread,
Oct 12, 2014, 4:06:00 AM10/12/14
to rob...@googlegroups.com
That's a problem occurred during I put <pattern>**</pattern>

if I remove all pattern and set this pattern only
 
<forceLinkClasses>
<pattern>**</pattern> only this pattern
 </forceLinkClasses>

or added it to my pattern
 
<forceLinkClasses>
<pattern>**</pattern>

    <pattern>com.badlogic.gdx.scenes.scene2d.ui.*</pattern>

    <pattern>com.badlogic.gdx.physics.bullet.**</pattern>

    <pattern>com.android.okhttp.HttpHandler</pattern>

    <pattern>com.android.okhttp.HttpsHandler</pattern>

    <pattern>com.android.org.conscrypt.**</pattern>


 </forceLinkClasses>
 

 


 
 

Mahmoud Ghonim

unread,
Oct 12, 2014, 6:52:33 AM10/12/14
to rob...@googlegroups.com
Note I tried to run this code on desktop and it was working with no errors
 

Niklas Therning

unread,
Oct 14, 2014, 10:17:42 AM10/14/14
to Mahmoud Ghonim, rob...@googlegroups.com
We would need to see the Eclipse log file after you get this error. There should be more info there about what happens, like a stacktrace. You should find this log file in <workspacedir>/.metadata/.log. Please only post the relevant pieces of that log file as it can be quite big.

On Sun, Oct 12, 2014 at 12:52 PM, Mahmoud Ghonim <eng.mahm...@gmail.com> wrote:
Note I tried to run this code on desktop and it was working with no errors
 

--
Message has been deleted

Mahmoud Ghonim

unread,
Oct 14, 2014, 11:44:18 AM10/14/14
to rob...@googlegroups.com
Dear Niklas,

I need any API that allowing file transferring and can compiled on Robovm.

Please Help
Message has been deleted

Niklas Therning

unread,
Oct 16, 2014, 9:31:26 AM10/16/14
to Mahmoud Ghonim, rob...@googlegroups.com
Add to your robovm.xml

<forceLinkClasses>
  <pattern>org.apache.commons.vfs.provider.local.DefaultLocalFileProvider</pattern>
</forceLinkClasses>

Do this whenever you get a ClassNotFoundException.


On Wed, Oct 15, 2014 at 2:39 PM, Mahmoud Ghonim <eng.mahm...@gmail.com> wrote:

org.apache.commons.vfs.FileSystemException: Could not load VFS configuration from "jar:file:/Users/system/Library/Developer/CoreSimulator/Devices/7F38CA9E-1431-4D36-9032-0361184795B1/data/Containers/Bundle/Application/336F323C-A0CD-4D0B-9DB8-800CBA002E9F/IOSLauncher.app/lib/commons-vfs-2.0.jar!/org/apache/commons/vfs/impl/providers.xml".

at org.apache.commons.vfs.impl.StandardFileSystemManager.configure(StandardFileSystemManager.java)

at org.apache.commons.vfs.impl.StandardFileSystemManager.init(StandardFileSystemManager.java)

at com.nnaass.experimental.db.Zehon.<init>(Zehon.java)

at com.nnaass.experimental.db.DB.create(DB.java)

at com.badlogic.gdx.backends.iosrobovm.IOSGraphics.draw(IOSGraphics.java)

at com.badlogic.gdx.backends.iosrobovm.IOSGraphics$1.draw(IOSGraphics.java)

at org.robovm.apple.uikit.UIView.$cb$drawRect$(UIView.java)

at org.robovm.apple.uikit.UIApplication.main(Native Method)

at org.robovm.apple.uikit.UIApplication.main(UIApplication.java)

at com.nnaass.experimental.db.IOSLauncher.main(IOSLauncher.java)

Caused by: org.apache.commons.vfs.FileSystemException: Could not create file provider of class "org.apache.commons.vfs.provider.local.DefaultLocalFileProvider".

at org.apache.commons.vfs.impl.StandardFileSystemManager.createInstance(StandardFileSystemManager.java)

at org.apache.commons.vfs.impl.StandardFileSystemManager.addProvider(StandardFileSystemManager.java)

at org.apache.commons.vfs.impl.StandardFileSystemManager.configure(StandardFileSystemManager.java)

... 10 more

Caused by: java.lang.ClassNotFoundException: org.apache.commons.vfs.provider.local.DefaultLocalFileProvider

at java.lang.VMClassLoader.findClassInClasspathForLoader(Native Method)

at java.lang.PathClassLoader.findClass(PathClassLoader.java)

at java.lang.ClassLoader.loadClass(ClassLoader.java)

at java.lang.ClassLoader.loadClass(ClassLoader.java)

... 13 more

Mahmoud Ghonim

unread,
Oct 21, 2014, 3:57:41 AM10/21/14
to rob...@googlegroups.com
after I put it

com.zehon.exception.FileTransferException: org.apache.commons.vfs.FileSystemException: Could not create a file system manager of class "org.apache.commons.vfs.impl.StandardFileSystemManager".

at com.zehon.FileTransferClient.resourceExist(FileTransferClient.java)

at com.zehon.FileTransferClient.fileExists(FileTransferClient.java)

at com.zehon.sftp.SFTPClient.fileExists(SFTPClient.java)

at com.zehon.sftp.SFTP.fileExists(SFTP.java)

at com.nnaass.experimental.db.Zehon.<init>(Zehon.java)

at com.nnaass.experimental.db.DB.create(DB.java)

at com.badlogic.gdx.backends.iosrobovm.IOSGraphics.draw(IOSGraphics.java)

at com.badlogic.gdx.backends.iosrobovm.IOSGraphics$1.draw(IOSGraphics.java)

at org.robovm.apple.uikit.UIView.$cb$drawRect$(UIView.java)

at org.robovm.apple.uikit.UIApplication.main(Native Method)

at org.robovm.apple.uikit.UIApplication.main(UIApplication.java)

at com.nnaass.experimental.db.IOSLauncher.main(IOSLauncher.java)

Caused by: org.apache.commons.vfs.FileSystemException: Could not create a file system manager of class "org.apache.commons.vfs.impl.StandardFileSystemManager".

at org.apache.commons.vfs.VFS.createManager(VFS.java)

at org.apache.commons.vfs.VFS.getManager(VFS.java)

at com.zehon.FileTransferClient.getFileObject(FileTransferClient.java)

... 12 more

Caused by: org.apache.commons.vfs.FileSystemException: Could not load VFS configuration from "jar:file:/Users/system/Library/Developer/CoreSimulator/Devices/7F38CA9E-1431-4D36-9032-0361184795B1/data/Containers/Bundle/Application/15240C07-4B7A-4491-A940-EB613D0A5980/IOSLauncher.app/lib/commons-vfs-2.0.jar!/org/apache/commons/vfs/impl/providers.xml".

at org.apache.commons.vfs.impl.StandardFileSystemManager.configure(StandardFileSystemManager.java)

at org.apache.commons.vfs.impl.StandardFileSystemManager.init(StandardFileSystemManager.java)

at java.lang.reflect.Method.internalInvoke(Native Method)

at java.lang.reflect.Method.invoke(Method.java)

... 15 more

Caused by: org.apache.commons.vfs.FileSystemException: Could not create file provider of class "org.apache.commons.vfs.provider.zip.ZipFileProvider".

at org.apache.commons.vfs.impl.StandardFileSystemManager.createInstance(StandardFileSystemManager.java)

at org.apache.commons.vfs.impl.StandardFileSystemManager.addProvider(StandardFileSystemManager.java)

at org.apache.commons.vfs.impl.StandardFileSystemManager.configure(StandardFileSystemManager.java)

... 19 more

Caused by: java.lang.ClassNotFoundException: org.apache.commons.vfs.provider.zip.ZipFileProvider

at java.lang.VMClassLoader.findClassInClasspathForLoader(Native Method)

at java.lang.PathClassLoader.findClass(PathClassLoader.java)

at java.lang.ClassLoader.loadClass(ClassLoader.java)

at java.lang.ClassLoader.loadClass(ClassLoader.java)

... 22 more


 

Niklas Therning

unread,
Oct 21, 2014, 4:05:36 AM10/21/14
to Mahmoud Ghonim, rob...@googlegroups.com
Whenever you get a ClassNotFoundException you should try to add a pattern to your forceLinkClasses in your robovm.xml.

--

Mahmoud Ghonim

unread,
Oct 21, 2014, 4:05:59 AM10/21/14
to rob...@googlegroups.com
the code that I was wriiten

Boolean exist=SFTP.fileExists(SFTPWORKINGDIR, "1.png", SFTPHOST, SFTPUSER, SFTPPASS);
if(exist){
}

please help my I tried alot of api to transfer my files from,to sftp server but all depends on JSCH  but as you know that when I'm using JSCH error occurred

 com.jcraft.jsch.JSchException: Session.connect: java.security.NoSuchAlgorithmException: KeyPairGenerator DH implementation not found

at com.jcraft.jsch.Session.connect(Session.java)

at com.jcraft.jsch.Session.connect(Session.java)

at com.nnaass.experimental.db.Uploading.<init>(Uploading.java)

at com.nnaass.experimental.db.DB.create(DB.java)

Mahmoud Ghonim

unread,
Oct 22, 2014, 4:57:09 AM10/22/14
to rob...@googlegroups.com

 Dear Niklas,

I need to Resolve only this issue Please help  (JSCH API)
 
com.jcraft.jsch.JSchException: Session.connect: java.security.NoSuchAlgorithmException: KeyPairGenerator DH implementation not found

at com.jcraft.jsch.Session.connect(Session.java)

at com.jcraft.jsch.Session.connect(Session.java)

at com.nnaass.experimental.db.Uploading.<init>(Uploading.java)

at com.nnaass.experimental.db.DB.create(DB.java)

at com.badlogic.gdx.backends.iosrobovm.IOSGraphics.draw(IOSGraphics.java)

at com.badlogic.gdx.backends.iosrobovm.IOSGraphics$1.draw(IOSGraphics.java)

at org.robovm.apple.uikit.UIView.$cb$drawRect$(UIView.java)

at org.robovm.apple.uikit.UIApplication.main(Native Method)

at org.robovm.apple.uikit.UIApplication.main(UIApplication.java)

at com.nnaass.experimental.db.IOSLauncher.main(IOSLauncher.java)



and that's a good example for uploading files on sftp server if you want to try to help me for solving this Issue:


http://kodehelp.com/java-program-for-uploading-file-to-sftp-server/


Niklas Therning

unread,
Oct 28, 2014, 2:42:16 AM10/28/14
to Mahmoud Ghonim, rob...@googlegroups.com
Again, try

<forceLinkClasses>
  <pattern>**</pattern>
</forceLinkClasses>

in your robovm.xml. If that fails with an Eclipse error we need to see your Eclipse log file.


Mahmoud Ghonim

unread,
Oct 30, 2014, 4:29:13 AM10/30/14
to rob...@googlegroups.com
 tried to put

  <pattern>**</pattern>
but still have a problem 
eclipse log  eclipse Logfile

 

Niklas Therning

unread,
Oct 30, 2014, 6:58:57 AM10/30/14
to Mahmoud Ghonim, rob...@googlegroups.com
That looks like a bug in the RoboVM compiler. Please let me know where I can download the JAR file for the scp/sftp implementation you're using.

--

Mahmoud Ghonim

unread,
Oct 30, 2014, 5:27:26 PM10/30/14
to rob...@googlegroups.com
Dear Niklas,

You can download JSCH, Jzlib from Maven Repository; 
How to use it JSCH tutorial.

Thanks & Regards

Mahmoud Ghonim

unread,
Nov 24, 2014, 7:43:08 AM11/24/14
to rob...@googlegroups.com

Dear Niklas,

Any updates.

Mahmoud Ghonim

unread,
Dec 9, 2014, 2:43:57 AM12/9/14
to rob...@googlegroups.com
Dear Niklas,

Any updates ?

Niklas Therning

unread,
Dec 11, 2014, 3:51:37 AM12/11/14
to Mahmoud Ghonim, rob...@googlegroups.com
I've know tried to compile all the class contained in the JSCH and
Jzlib jar files you linked to and I don't get any exception. They
happily compile with the latest version of RoboVM. Please retry with
the latest release (beta-01) or the latest nightly.

On Tue, Dec 9, 2014 at 8:43 AM, Mahmoud Ghonim
<eng.mahm...@gmail.com> wrote:
> Dear Niklas,
>
> Any updates ?
Reply all
Reply to author
Forward
0 new messages