How to install Git on the standard openjdk docker image? - java

Recently started upgrading my app from JDK 8 to 17.
My build infrastructure uses docker containers. Previously, I was using openjdk:8u322-jdk. So I bumped the docker image to openjdk:17.0.2-jdk, but things've changed drastically.
There's no Git installed by default now, I think the underlying OS has changed and the default CMD is "jshell", whatever that is o_O
I don't want to spend time faffing about creating my own docker image with the needed tools installed.
At the end of the day, I just need to run two commands on the build container: git clone and gradlew.
What do I need to run to get Git installed so I can run a git clone and gradlew?

microdnf install git to install git.
Need to execute bash explicitly if you want to connect and run commands.

Related

Running Jenkins Node/Agent as a Windows Service with OpenJDK

I have a Windows virtual machine with OpenJDK 13 installed that I would like to setup as a Jenkins node/agent.
When I create the node configuration using the Jenkins UI and select Launch Method: Launch Agent by connecting it to the master it provides a link to download slave-agent.jnlp
On a system with the original jdk/jre older than version 9, which contains java web start, if I run that jnlp file, it brings up a window with a menu that includes an option File - Install as A Service
However, as OpenJDK (and I believe any JRE/JDK versions greater than 8) do NOT contain Java Web Start, I cannot seem to gain access to that option.
I am able to successfully run java -jar agent.jar -jnlpUrl https://jenkinsserver/blah/slave-agent.jnlp -secret blah -workDir "somedirectory" and have the node register with Jenkins, but it is not running as a service.
I had an older agent that was still using old version of JRE, so I looked at its Jenkins service configuration and unfortunately it seems to be relying on executable(s), .config file(s), and xml file(s), which I cannot determine the source of, beyond they must be created when running the "Install as a service" instructions from slave-agent.jnlp
I also attempted to use IcedTea-Web which is apparently supposed to be a Java Web Start replacement, but I've had no success.
Can anyone tell me how to setup a Windows machine running OpenJDK as a Jenkins node/agent with the Jenkins node/agent components running as a Windows service?
I had a similar issue and now I use NSSM.
Download NSSM
Open a cmd and install the service (I used JenkinsService as Servicename):
<path to nssm.exe>\nssm install <Servicename>
Insert the path to the jdk to the field Path
add the rest to the field Arguments:
-jar agent.jar -jnlpUrl https://jenkinsserver/blah/slave-agent.jnlp -secret blah -workDir "somedirectory"
Click on install the service
Now you can check the new service JenkinsService in the windows service manager. As soon as it's running you can check the connection to the master.
If you want to setup a Java base application as a service, I believe the best option would be to use Procrun from Apache. It is the exact method that Tomcat uses.

Using OpenJDK 12 in Jenkins (Docker version)

I tried to install OpenJDK 12 in jenkins, with *.tar.gz installer but i get the error Cannot run program "/bin/java"
JAVA_HOME=/var/jenkins_home/tools/hudson.model.JDK/java12
Note I created the directory "hudson.model.JDK" myself.
here is the tool configuration
full error log
JDK 12 has one bug logged
https://bugs.openjdk.java.net/browse/JDK-6746185
according to this Malformed URL is invalid, So jenkins is not able to download JDK
Simple solution is download JDk from this link, or whatever you like and add Open JDK in jenkins as I do
https://download.java.net/java/GA/jdk12.0.1/69cfe15208a647278a19ef0990eea691/12/GPL/openjdk-12.0.1_linux-x64_bin.tar.gz
Download JDK and extract it to one folder.
Manage Jenkins> Global Configurations> Add JDK>
1. Name: Open JDK(Or whatever you want)
2. JAVA_HOME: \Open_JDK\
like in my case
E:\Open_JDK\openjdk-11.0.2_windows-x64_bin\jdk-11.0.2
in jenkins
Save and exit, everything working fine
Happy Jenkins, Happy to help
JDK Tool Plugin in Jenkins only support the automatic download of version up to Java SDK 1.9 so I will write the process made by me in order to config OpenJDK-11(I'm using this specific version but another version can be used) in a Jenkins running in a Docker container:
Login into the host server where the docker container is running using SSH
service.
Check the running containers with the command: docker ps
Get in into the Jenkins container with the command(in my case, the container name is "jenkins"): docker exec -it containerName /bin/bash
Download the OpenJDK 11: cd /usr/local && wget https://download.java.net/openjdk/jdk11/ri/openjdk-11+28_linux-x64_bin.tar.gz
Unpack the downloaded file: tar -zxvf openjdk-11+28_linux-x64_bin.tar.gz
Now you will have a folder "jdk-11" under /usr/local.
Go to Global Tools Configuration in Jenkins and set up the SDK config like the showed image:
Now you can make use of a different version of Java SDK in Jenkins builds using as label "Java SE 11".
JDK 12 is not yet supported by Jenkins.
Link: https://jenkins.io/doc/administration/requirements/java/

Getting Java to work with Windows 10 Ubuntu

I installed the Windows 10 Anniversary Update so that I could try Bash on Ubuntu on Windows. See how to install it. I wanted to see how performant it was. I then installed the Oracle Java JDK as per this article, so I could compare compilation times with the native Windows Java compiler.
I then tried to run Maven on my project, but it didn't work. Maven just hung starting. I noticed in Task Manager that the "java" process was hovering around 92% CPU.
So I tried something simple. I created a dummy Java Hello-world-like class and attempted to compile it with javac. Similarly, the "javac" process sat around 92% CPU.
I thought maybe it had something to do with running headless, but the -Djava.awt.headless=trueoption didn't make it any better.
Has anyone got this to work or have anything to try?
Update:
I also tried installing the Open JDK instead of the Oracle JDK (via sudo apt-get install openjdk-7-jdk) with the same result.
I figured it out. I couldn't use the download directly from Oracle. Instead I had to install it as per this link. Here are the steps:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
I had the same experience with the Windows 10 Anniversary Update. The first Fast Track Insider Build after the Anniversary Update and later support both the oracle Java 8 installer and the open JDK 7 installer. I just verified the java -version command still works on Insider Preview Build 14951 161014-1700 from the Ubuntu subsystem's bash shell. I have run other JVM based tools from bash shell as well but not extensively.
Here is a link to an issue, Cannot install Oracle JDK 8 #315, describing both installation and JVM hang issues tracked by the BashOnWindows project.

How to install JDK and Intellij IDEA on ARM/Samsung series 3

So I am very, very new to Linux. I am also new-ish to coding. I'm currently learning Java and purchased a Samsung series 3 Chromebook for the sole purpose of practicing code (eventually moving to slick 3d).
I have JUST installed XFCE using crouton and have gotten Firefox using the Synaptic Package Manager, woohoo!
I would like to find out how/which JDK I need for this device and how to install Intellij IDEA. I've tried searching around for a little while now and feel a bit overwhelmed with all the information regarding this, not only new OS, but new architecture (ARM).
Basically my main goals are to be able to get the proper JDK and a Java IDE up and running. I have read that Intellij IDEA may or may not be available yet for the ARM processors in which case using Eclipse would be just as fine.
A bit late but just did this myself. Very simple really: Go to https://www.jetbrains.com/idea/download for the latest version of idea. While it's downloading go to the terminal and type
sudo apt-get update && sudo apt-get install openjdk-7-jdk
Once Idea is downloaded and openjdk installed, extract the idea file somewhere.
mv ~/Downloads/idea-IU*.tar.gz ~
cd ~
tar xvf idea-IU*.tar.gz
To launch idea then just go to the extracted directory and run the idea.sh in the bin directory
cd idea-IU*/bin
./idea.sh
Should start up nicely
Update:
Saying it starts up nicely was not a lie. It just doesn't stay up long. Trying to see whats going wrong. Will update with findings.
OK, so you'll also need to do the following, open idea.sh and add -jamvm to the list of arguments used to run intellij,so change this line:
IDE_JVM_ARGS=""
To this:
IDE_JVM_ARGS="-jamvm"
ALSO, you'll need to install clang ( sudo apt-get install clang ) and copy and run ( bash <scriptname>.sh /path/to/idea/bin ) this guy's shell script : https://gist.github.com/pcarrier/7560053#file-fsnotifierto-sh
OpenJDK is available in Ubuntu, and the Oracle Java SE Development Kit can be downloaded from Oracle. For the latter, you would need the "hard float ABI" version.
http://www.webupd8.org/2013/12/oracle-java-ppa-updated-with-arm-support.html might be a more user-friendly way than downloading the Oracle environment yourself.
Eclipse exists in Ubuntu too.

Installing JDK from self extracting bin on Cygwin

I want to install the JDK in cygwin on my windows machine. I am downloading the linux version of JDK from oracle site using wget command. Here is the list of commands I am running to install JDK:
wget http://download.oracle.com/otn-pub/java/jdk/6u31-b04/jdk-6u31-linux-x64.rpm.bin
chmod a+x jdk-6u31-linux-x64.rpm.bin
./jdk-6u31-linux-x64.rpm.bin
All these instructions are same as suggested by Oracle for installing JDK over here but I am getting the following errors:
Firstly, those messages indicate that what you are trying to execute is an HTML document! In other words, the download has failed and given you an error page rather than an installer.
However, assuming that you succeed in downloading the (Linux) installer, it is unlikely that it will install properly, and there is about ZERO chance that the installed tools will run. Applications that have been compiled for Linux don't run on Cygwin.
What you need to do is to download and install the JDK for Windows, and then tweak your cygwin profile a bit. This page explains: http://horstmann.com/articles/cygwin-tips.html.
(If you Google for "java cygwin" there are various other tips for making Java work from Cygwin. However, in my experience there are a few rough edges ... due to the fact that the Windows Java utilities expect to have been called with windows-style arguments, pathnames, classpaths, etcetera.)

Categories