In our project (CMS) we are currently using Mindterm for launching SSH terminal to Network Elements and different Virtual Machines. Client download .jnlp file that launch Swing based GUI with ssh terminal to configured address.
Since mindterm is getting out of support at the end of this year (2021), we are looking for replacement, my question is can anyone recommend something providing similar functionality, we don't want into writing this by our own.
Thanks
P.S. I know that e.g. Putty, mRemoteNG exist but customer want to have ability start preconfigured with IP address terminal from CMS application.
Related
Is it possible for a Java Desktop Application coded with java Swing to use in multiple computer through networking? I have a Java Desktop Application with MySQL as database. I want to deployed it in about 3-5 computers by means of Networking or sending data depend on their IP Address. SO what are the process that i am going to do to achieve this networking. Is setting the path of the database inside my program into the server's IP Address will help? Thank you so much.
Is it possible for a Java Desktop Application coded with java Swing to use in multiple computer through networking?
For deploying Java desktop apps., the best option is usually to install the app. using Java Web Start. JWS works on Windows, OS X & *nix.
.. sending data depend on their IP Address
If the launch file (XML with a JNLP extension) is generated dynamically, properties can be added on a client by client basis. Alternately, have the client supply that information when they 'phone home'.
Try replacing the hostName in your database connections from localhost with the IP adress of the computer carrying the Database.
I have a small server running Ubuntu (12.04.1 LTS). I can control the server from putty but I want to do this with GUI. I know how to create Java applications with GUI. Anyway my question is, how to send ssh command when button clicked.
The Jsch library allows you to do ssh programmatically from java. This should allow you to send the necessary commands from you gui to your server.
One more or less simple way to do this is to open a ssh tunnel and forward a port from your local machine to the server. I recommend using a key pair to omit entering a password. Next you write your application which could consist of two parts, your local GUI and some server which executes the commands on the server.
I still think that this a very complicated solution but the choice is yours.
Solution?
-- it looks like i may be able to use the x-11 forwarding in jsch and and use the java Desktop class to launch a file browser. Not sure if this will work.
What I am trying to do is, within a java application, open a connection to a server or another computer. I have found a way to do this that opens a terminal window but what I want is a gui/explorer/finder like window that allows me to drag and drop files between the machines.
--Edit--
An example: When i use an sftp application i can open a graphical window and drag files from my computer to folders on the remote server. just like an explorer or finder window. I am looking for a way to implement this type of functionality in java. I want to open a connection to a remote machine, then open a graphical window to browse the file system
You can use JSch to communicate with the server through SSH and
1. create your own GUI or
2. use X11 forwarding
you need two applications in each machine ,you can do this by TLS connection.
however it need a waiting thread in costumer machine (dragable) to get file from Tls port and stream it to new location or if you want to use just gui in one machine you can old applet or java Fx instead .
I have a web application running with support for some specific pieces of hardware. This is achieved in the following steps:
User runs a small installer that places java files (and a couple
others) on the client machine. The main piece is a jar called "hardwareManager"
User visits web app. The web app runs a java applet which, due to
a .java.policy file placed during the install, has permission to
interact with the client machine outside the browser sandbox.
The applet checks to make sure the hardwareManager is running,
and if not runs a command to start it.
User interacts with the web app which sends commands to the applet via
javascript. The applet then writes commands to a text file
on the client machine. The text file is constantly monitored by the
hardwareManager which runs any commands it reads in.
This works, but seems clunky. I have a couple ideas on how to improve it, but I don't know which, if any, are even worth trying.
Would it be better to set up the hardwareManager as a socketServer and have the applet connect directly to it, rather than going through text files? Is that even possible?
Is there a way to eliminate the applet altogether and have the javascript talk directly to the hardwareManager? Maybe by writing the hardwareManager to be a local http server? What port should it run on? Do javascript xss limitations fit in here somewhere?
It would be less clunky to start the Java application using Java Web Start. This would remove the need to daemonize or install the Java hardware manager.
Another alternative is to use a built-in browser inside Java. I supose this is not an option, since you depend heavily on Javascript (I suppose to provide a rich client experience).
If you already have to install something on the client machine, why did you make the choice to go with a web application?
Talking from experience: We had a Java EE application which needed to print to PoS printers at the client site. We installed a small "synchronizer" application that connects through SSH and synchronizes all clients files. Afterwards, it loads the JAR and executes the program. This program connects through RMI with the server and subscribes to a JMS queue to receive the print assignments.
Applied to your case: Why not let your Java application connect to the server directly? You can use HTTP, SOAP or even JMS over RMI. You can then launch the hardware command from the server (instead of from the limited JavaScript webbrowser environment). This way, you get tons of features: authentication, buffering of commands, and you can even share hardware between multiple clients.
Schematic:
<----AJAX------> Web browser
ApplicationServer
<---HTTP/SOAP--> Java hardware manager application
You can launch the Java application using Java Web Start, which allows you to update the application automatically (instead of needing to pass every client a new installer).
I am learning Java and am trying to do some experiments with networking Java programs.
I have a program made in 2 parts with a client and a server and it works in local testing but the program actually has usefulness for me and a friend of mine and I want to put the server online so both of us can connect to it and use it.
Where/How can I put the program online and have it running so that the client programs can connect to the ServerSocket with an ip address? (Preferably free)
If you dont want to pay server hosting then I would open a virtual server on my computer, then playaround with modem and forward related port to server ip. I would use a port more than 40000. Then just send your ip and port your friend or update application.
If you really want the application to go live within 5 mins, try Jelastic. If you have built a WAR file, simply sign up with their server,choose a provider closest to your geo location, configure Tomcat and you can upload the WAR file through their fantastic web console. Otherwise if you have some source control system(SVN,GIT etc), you just connect and build it with their Maven console and you can be ready. I used it for my start up(Cloudlabz) and really found it exciting.
Surya
You could also consider the cheapest Rackspace Cloud Server. You'll get a full fledged Linux server (distribution of your choice) for about USD 11/month. I've done that now and then myself to try things out.
Just install Java on it and you're good to go.
http://www.rackspace.com/cloud/cloud_hosting_products/servers/pricing/
http://ideone.com/
is that what you want for this?
This is a free web app for you to run your program online....so you can just paste your code and run it.
On the cloud you could use two different services in order to host your Java application.
IaaS (Infrastructure as a Service). Where you can just rent a specific infrastructure on the cloud and you could install and configure all the services that you need.
PaaS (Platform as a Service). In this case, you still enjoy the infrastructure on the cloud + the service Aaren full pre-configured. It means that you can deploy your application without installing or configuring anything. You just need to deploy your application. You have an example about how it works here. Also, you usually can test your Java apps on the cloud without paying.
You should host the server in Heroku ,they offer a free hosting with limits , I have an app there