1010import java .io .FileInputStream ;
1111import java .io .FileOutputStream ;
1212import java .io .InputStream ;
13+ import java .lang .UnsatisfiedLinkError ;
1314
1415public class MeCab implements MeCabConstants {
15- public static synchronized void initialize () {
16+ public static synchronized void initialize () throws UnsatisfiedLinkError {
1617 System .out .println ("Loading MeCab library..." );
1718
1819 String nativeLibPath = "/org/chasen/mecab/native" ;
@@ -25,25 +26,13 @@ public static synchronized void initialize() {
2526 String nativeLibName = System .mapLibraryName ("MeCabWrapper" );
2627 String nativeLibFilePath = nativeLibPath + "/" + nativeLibName ;
2728 if (MeCab .class .getResource (nativeLibFilePath ) == null ) {
28- System .out .println ("Error loading native library: " + nativeLibPath + "/" + nativeLibName );
29- System .exit (1 ); // TODO: Exception
30- }
31-
32- String originalLibName = System .mapLibraryName ("mecab" );
33- String originalLibFilePath = nativeLibPath + "/" + originalLibName ;
34- if (MeCab .class .getResource (originalLibFilePath ) == null ) {
35- System .out .println ("Error loading original library: " + nativeLibPath + "/" + nativeLibName );
36- System .exit (1 );
29+ throw new UnsatisfiedLinkError ("Error finding native library: " + nativeLibFilePath );
3730 }
3831
3932 // Temporary library folder
4033 String tempFolder = "/tmp" ;
4134 File extractedLibFile = new File (tempFolder , nativeLibName );
42- File extractedOriginalLibFile = new File (tempFolder , originalLibName );
43-
4435 extractLibrary (nativeLibFilePath , extractedLibFile );
45- extractLibrary (originalLibFilePath , extractedOriginalLibFile );
46-
4736 System .load (extractedLibFile .getAbsolutePath ());
4837 }
4938
@@ -61,8 +50,7 @@ private static void extractLibrary(String resourcePath, File destination) {
6150 writer .close ();
6251 reader .close ();
6352 } catch (Exception e ) {
64- System .err .println (e );
65- System .exit (1 );
53+ throw new UnsatisfiedLinkError ("Error loading native library: " + resourcePath );
6654 }
6755 }
6856}
0 commit comments