Here you can find the source of runInThread(final Runnable runnable)
public static void runInThread(final Runnable runnable) throws Throwable
//package com.java2s; /******************************************************************************* * Copyright (c) 2014 EclipseSource and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors:// w ww.ja v a 2 s . com * EclipseSource - initial API and implementation ******************************************************************************/ import java.util.concurrent.atomic.AtomicReference; public class Main { public static void runInThread(final Runnable runnable) throws Throwable { final AtomicReference<Throwable> exception = new AtomicReference<Throwable>(); Runnable exceptionGuard = new Runnable() { public void run() { try { runnable.run(); } catch (Throwable throwable) { exception.set(throwable); } } }; Thread thread = new Thread(exceptionGuard); thread.setDaemon(true); thread.start(); thread.join(); if (exception.get() != null) { throw exception.get(); } } }