/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * * ident "%Z%%M% %I% %E% SMI" */ package org.opensolaris.os.dtrace; import java.io.File; /** * Common functionality for all {@code org.opensolaris.os} subpackages. */ class Utility { private static void loadLibrary(String paths[], String name, boolean debug) { File file; for (String p : paths) { file = new File(p); // Allows LD_LIBRARY_PATH to include relative paths p = file.getAbsolutePath(); try { System.load(p + "/" + name); if (debug) { System.out.println("loaded " + name + " from " + p); } return; } catch (UnsatisfiedLinkError e) { } } throw (new UnsatisfiedLinkError("Unable to find " + name)); } /** * Loads a library. */ public static void loadLibrary(String name, boolean debug) { String path = System.getProperty("java.library.path"); path = path + ":/usr/lib/64"; /* Java bug 6254947 */ String[] paths = path.split(":"); if (debug) { String root = System.getenv("ROOT"); if (root != null && root.length() > 0) { System.out.println("Prepending $ROOT to library path."); String[] npaths = new String[paths.length * 2]; for (int i = 0; i < paths.length; i++) { npaths[i] = root + "/" + paths[i]; npaths[i + paths.length] = paths[i]; } paths = npaths; } } loadLibrary(paths, name, debug); } }