Skip to content

Commit

Permalink
Merge pull request #24 from apalala/classpath
Browse files Browse the repository at this point in the history
Allow for '*' wildcards in CLASSPATH+(some tipos).
  • Loading branch information
tshirtman committed Sep 6, 2012
2 parents 2ca5cee + 9bd899e commit 4ff916d
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 5 deletions.
4 changes: 2 additions & 2 deletions jnius/jnius_export_class.pxi
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@ class MetaJavaClass(type):

jcs.j_env = get_jnienv()
if jcs.j_env == NULL:
raise JavaException('Unable to get the Android JNI Environment')
raise JavaException('Unable to get the JNI Environment')

jcs.j_cls = jcs.j_env[0].FindClass(jcs.j_env,
<char *>__javaclass__)
if jcs.j_cls == NULL:
raise JavaException('Unable to found the class'
raise JavaException('Unable to find the class'
' {0}'.format(__javaclass__))

classDict['__cls_storage'] = jcs
Expand Down
30 changes: 27 additions & 3 deletions jnius/jnius_jvm_desktop.pxi
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,39 @@ cdef extern from "jni.h":

cdef JNIEnv *default_env = NULL

def classpath():
import platform
from glob import glob
from os import environ
from os.path import realpath

if 'CLASSPATH' not in environ:
return realpath('.')
cp = environ.get('CLASSPATH')
if platform.system() == 'Windows':
split_char = ';'
else:
split_char = ':'
pre_paths = cp.split(split_char)
# deal with wildcards
paths = []
for path in pre_paths:
if not path.endswith('*'):
paths.append(path)
else:
paths.extend(glob(path + '.jar'))
paths.extend(glob(path + '.JAR'))
result = split_char.join(paths)
return result


cdef void create_jnienv():
cdef JavaVM* jvm
cdef JavaVMInitArgs args
cdef JavaVMOption options[1]
cdef bytes py_bytes

from os import environ
from os.path import realpath
cp = environ.get('CLASSPATH') or realpath('.')
cp = classpath()
py_bytes = <bytes>('-Djava.class.path={0}'.format(cp))
options[0].optionString = py_bytes
options[0].extraInfo = NULL
Expand Down

0 comments on commit 4ff916d

Please sign in to comment.