我正在使用运行Java 1.7.0_21的Mac 10.7.我正在尝试运行已签名的Java applet应用程序,并且在应用程序结束时,我得到一个混合模式安全弹出窗口"阻止可能不安全的组件被运行?".我正在使用的所有罐子都签了名.
我可以在运行Java 6的Mac 10.6上运行相同的applet应用程序,但我没有得到混合模式警告.我也可以在Windows上运行应用程序而不会出现混合模式警告.
当我的所有罐子都签名后,为什么我会一直收到这个错误?
我用谷歌搜索混合模式警告,发现此链接.
http://docs.oracle.com/javase/6/docs/technotes/guides/jweb/mixed_code.html#manifest
看完这个链接后,我有点困惑.根据此链接,我看起来需要在清单文件中提到"Trusted-Only"或"Trusted-Library"属性.我查看了我的清单文件,他们没有这些属性,所以我应该把它们放进去,或者只是罐子签名应该已经足够了.
有人可以请帮助我理解为什么即使一切都签名我都会收到此错误?
一点背景:我有一个需要与mac上的第三方硬件通信的java应用程序.他们给了我sdk,但它不是Java.所以我试图让jnilib充当我的java应用程序和SDK之间的桥梁.
问题:我已经制作了一个与SDK对话的小样本jnilib但是当我尝试在我的java程序中使用它时出现以下错误
Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/john.doe/Desktop/eclipse/workspace/Lesson13_Jni_Smart7/bin/libSmartTest7.jnilib: Library not loaded: build/Release/SMARTResponseSDK.framework/Versions/A/SMARTResponseSDK Referenced from: /Users/john.doe/Desktop/eclipse/workspace/Lesson13_Jni_Smart7/bin/libSmartTest7.jnilib
Reason: image not found
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1827)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1742)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1045)
at com.learning.lesson13.JniSmart7.<clinit>(JniSmart7.java:6)
Run Code Online (Sandbox Code Playgroud)
从错误看起来我libSmartTest7.jnilib正在寻找图书馆SMARTResponseSDK.
我试过的,我知道SMARTResponseSDK我的Mac上的库在哪里.我尝试将它复制到eclipse中的工作文件夹但我仍然得到错误.我试过使用-DJava.library.path但我仍然得到错误.
关于什么是最好的方法的任何想法.
有人可以告诉我如何从Objective C调用Java方法.
更详细地说,这实际上是我想要做的
1)首先从java端调用目标C.在此调用期间,我想获得对java对象的引用.
2)稍后我希望Objective C使用上一步中获得的引用来调用Java方法.
谢谢
传递方法参数的Java Object的生命是什么?
例如,我有一个对象Test
class Test{
public string testType(){
.....
}
}
Run Code Online (Sandbox Code Playgroud)
我有两个A和B类
class classA{
classB b = new classB();
void nextQuestion{
b.start(new Test());
}
}
class classB{
void start(Test test){
doSomething(test.testType());
}
}
Run Code Online (Sandbox Code Playgroud)
那么现在Test对象的生命是什么?它只是直到start方法的结尾,或者它会一直存在直到classB结束,或者它活着直到classA结束或者是其他东西.
我有以下几点:
一个 Java 类:ClassA 实现了 Observer
Java 接口:Inter(扩展 Observable,不可能)
一个 Java 类:ClassB 实现了 Inter extends Observable
一个Java类:ClassC实现Inter extends Observable
现在ClassA的代码有点像这样。
ClassA{
Inter anyClass = new ClassB();
//or it could be
Inter anyClass = new ClassC();
//Inter.addObserver(this); //not possible since Interface cannot extend Observable
}
Run Code Online (Sandbox Code Playgroud)
现在,如果某个特定事件发生在 ClassB 或 ClassC 中,我希望 ClassA 知道它。我想过使用 Observer/Observable 但问题是接口不能扩展 Observable。
如果有人理解这个问题,请帮助我找到在 ClassB 或 ClassC 中发生某些事情时更新 ClassA 的方法。
我在Objective C中创建新线程时遇到问题
- (void) create
{
NSLog( @"Hello World from create \n" );
NSThread* evtThread = [ [NSThread alloc] initWithTarget:self
selector:@selector( saySomething )
object:nil ];
[ evtThread start ];
}
- (void) saySomething
{
//NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
printf( "Hello world from new thread \n");
NSLog( @"Hello World from new thread \n" );
//[pool release];
}
Run Code Online (Sandbox Code Playgroud)
但看起来这个方法似乎并没有被称为.控制台中没有打印任何内容.
java ×5
objective-c ×2
interface ×1
macos ×1
methods ×1
mixed-code ×1
mode ×1
object ×1
observable ×1
sdk ×1
security ×1
warnings ×1