diff --git a/.travis.yml b/.travis.yml
index c3a8ad852b6ee7524fcea5b0588a2d8913d31c33..12dd3b262c3809846afff76fdc72fa6b2abd41e8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,26 +1,67 @@
 language: cpp
+
 matrix:
   include:
   - compiler: clang
     os: linux
-    dist: trusty
+    dist: bionic
     sudo: required
     group: edge
   - compiler: gcc
     os: linux
-    dist: trusty
+    dist: bionic
     sudo: required
     group: edge
-  - compiler: clang
-    os: osx
   - compiler: gcc
     os: osx
 
+addons:
+  apt:
+    update: true
+    packages:
+    - libafflib-dev
+    - libewf-dev
+    - libpq-dev
+    - autopoint
+    - libsqlite3-dev
+    - ant
+    - libcppunit-dev
+    - wget
+    - openjdk-8-jdk
+    - openjfx=8u161-b12-1ubuntu2
+    - libopenjfx-java=8u161-b12-1ubuntu2
+    - libopenjfx-jni=8u161-b12-1ubuntu2
+  homebrew:
+    update: true
+    packages:
+    - ant
+    - libewf
+    - gettext
+    - cppunit
+    - afflib
+
 python:
   - "2.7"
+
 install:
-  - ./travis_build.sh
+  - ./travis_install_libs.sh
+
+before_script:
+  - if [ $TRAVIS_OS_NAME = linux ]; then 
+        sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java;
+        sudo update-alternatives --set javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac;
+        export PATH=/usr/bin:$PATH; 
+        unset JAVA_HOME;
+    fi
+  - if [ $TRAVIS_OS_NAME = "osx" ]; then
+        export PATH=${PATH}:/usr/local/opt/gettext/bin;
+    fi
 
 script:
-  - make check && if [ -f "tests/test-suite.log" ];then cat tests/test-suite.log; fi ; if [ -f "unit_tests/base/test-suite.log" ];then cat unit_tests/base/test-suite.log; fi 
-  - if test ${TRAVIS_OS_NAME} = "linux"; then cd release; ./release-unix.pl ci; fi
+  - ./bootstrap && ./configure --prefix=/usr && make
+  - pushd bindings/java/ && ant -q dist-PostgreSQL && popd
+  - make check && if [ -f "tests/test-suite.log" ];then cat tests/test-suite.log; fi ; if [ -f "unit_tests/base/test-suite.log" ];then cat unit_tests/base/test-suite.log; fi
+  - if test ${TRAVIS_OS_NAME} = "linux"; then
+        pushd release && ./release-unix.pl ci && popd;
+    fi
+
diff --git a/travis_build.sh b/travis_build.sh
deleted file mode 100755
index a7689d774438c82b2574db969c85e5936050c1e9..0000000000000000000000000000000000000000
--- a/travis_build.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-set -ex
-installLib() {
-	wget https://github.com/libyal/$1/releases/download/$2/$1-alpha-$2.tar.gz
-	tar -xzf $1-alpha-$2.tar.gz
-	cd $1-$2
-	if test ${TRAVIS_OS_NAME} = "linux"; then
-		./configure -prefix=/usr > /dev/null
-	else
-		./configure > /dev/null
-	fi
-	make > /dev/null && sudo make install > /dev/null
-	cd ..
-}
-
-if test ${TRAVIS_OS_NAME} = "linux"; then
-	sudo apt-get -qq update
-	sudo apt-get -y install libafflib-dev libewf-dev libpq-dev autopoint libsqlite3-dev ant libcppunit-dev wget
-elif test ${TRAVIS_OS_NAME} = "osx"; then
-	export PATH=${PATH}:/usr/local/opt/gettext/bin
-	brew install ant libewf gettext cppunit afflib
-fi
-installLib libvhdi 20181227
-installLib libvmdk 20181227
-./bootstrap && ./configure --prefix=/usr && make > /dev/null
-cd bindings/java/ && ant -q dist-PostgreSQL
diff --git a/travis_instll_libs.sh b/travis_instll_libs.sh
new file mode 100644
index 0000000000000000000000000000000000000000..04638d4bcb8dad6e48c1a70e3f560aed11ccc6a1
--- /dev/null
+++ b/travis_instll_libs.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+set -ex
+installLib() {
+	wget https://github.com/libyal/$1/releases/download/$2/$1-alpha-$2.tar.gz
+	tar -xzf $1-alpha-$2.tar.gz
+	cd $1-$2
+	if test ${TRAVIS_OS_NAME} = "linux"; then
+		./configure -prefix=/usr > /dev/null
+	else
+		./configure > /dev/null
+	fi
+	make > /dev/null && sudo make install > /dev/null
+	cd ..
+}
+
+installLib libvhdi 20181227
+installLib libvmdk 20181227
+