草庐IT

JAVA_HOME 未正确定义编译时出错

我正在cocoa中开发一个使用一些java类的应用程序。我收到一个错误“JAVA_HOME未正确定义我们无法执行/System/Library/Frameworks/JavaVM.framework/Home/bin/java”。我不知道如何解决这个问题..请任何人帮助我..提前致谢 最佳答案 exportJAVA_HOME=`/usr/libexec/java_home`isexactlywhatyouwanttodo.事实上,所有硬编码/System/Library/Frameworks/JavaVM.framework/Ver

java - 将 Java 代码移植到 ObjC 时,如何最好地表示已检查的异常?

我正在努力将Java代码库移植到Cocoa/Objective-C,以便在桌面MacOSX上使用。Java代码有很多和很多方法,并已检查异常(exception)情况如:doubleasNumber()throwsFooException{...}在Objective-C中表示这些的最佳方式是什么?异常或错误输出参数?-(CGFloat)asNumber{...//possibly[FooExceptionraise:format:];}或-(CGFloat)asNumberError:(NSError**)outError{...}我感觉输出错误通常是Objective-C的更好解决

java - 将 Java 运行时嵌入到沙盒 Cocoa Mac 应用程序中

有人知道如何将Java运行时嵌入到MacCocoa(沙盒)应用程序中,以便该应用程序可以运行.jar文件而无需用户单独安装Java吗?我们有一个Cocoa应用程序,我们通过MacAppStore以及在我们自己的网站上销售它可以使用Java来完成特定任务。这是一个写作应用程序,因为.doc、.docx和.odt的标准NSText导出器非常有限(不支持页眉、页脚、图像等),我们将其写入RTF,然后使用基于Java的转换器(来自Aspose。com)将RTF转换为.doc、.docx或.odt,具体取决于所选的导出格式。我通过使用NSTask调用/usr/bin/java并运行一个运行转换例

java - 如何让 Apple Java Extensions (com.apple.eawt) 在 JDK 7 及更高版本上运行?

TL;DR:Apple已放弃对Java的原生功能支持。特别是触摸板手势不再起作用。我编写了一个使用JNI完成这项工作的库。请看下面我的回答。我正在搜索大约几个小时,以使AppleJavaExtensions在JDK7或8上运行。我一直在尝试所有我能想到的。互联网上所有关于此的帖子都将此归咎于JDK。我认为这应该是可以解决的,因为它在JDK6中工作。为了清楚起见:我可以让它在JDK6中工作,但我不想要这种遗留依赖,因为不是每个将使用我的应用程序的人都有JDK6或知道如何安装它,比方说。目标是制作一个可双击的JAR文件,该文件将按预期运行,具有OSX功能(菜单栏、手势、关于处理程序等...

c++ - 真的有类似 Objective C++ 的东西吗?

我正在阅读post关于iPhone编程,我注意到关于ObjectiveC++的讨论,帖子中显示的代码主要看起来像Objective-C,但也有一些C++代码片段。真的可以从C++编写Cocoa程序吗? 最佳答案 除了其他评论之外,我还要补充一点,Objective-C++与“从C++编写Cocoa程序”并不完全相同,因为不涉及C++到Cocoa的桥梁。在Objective-C++中,您可以完全使用Objective-C对象/语法对CocoaAPI进行编程。CocoaAPI保持不变,因此您需要以相同的方式与它通信(使用Objectiv

c++ - 将首选项加载到 Mac 内核扩展

您好!我正在为OSX开发内核扩展驱动程序。这是一个简单的键盘过滤器。我有通过首选项Pane设置的首选项,以了解此过滤器的行为方式。我需要从此首选项面板中获取首选项并将它们加载到内核扩展中。我用谷歌搜索了一下,没有找到任何关于如何做到这一点的信息。有没有办法将plist加载到首选项Pane中?也许进入OSDictionary或其他东西?或者,将首选项从我的首选项面板获取到我的kext的最佳方式是什么?谢谢! 最佳答案 thisproject的源代码会帮助你。它使用sysctl在prefPane和kext之间进行通信。

c++ - 获取 NSGlyph 的大纲

使用CoreText可以通过CTFontCreatePathForGlyph(...)获取CGGlyph的轮廓。现在我想从CoreText移植到Cocoa的字体引擎,所以问题是:有没有办法获取NSGlyph的轮廓? 最佳答案 是的,你可以使用NSBezierPath的-appendBezierPathWithGlyph:inFont:.我想补充一点,您也可以将CoreText与Cocoa结合使用。所以从这个意义上说,您根本不需要移植。 关于c++-获取NSGlyph的大纲,我们在Stac

c++ - dylib 中的重载运算符删除替换了 OSX 中的系统运算符

我有一个用C++编写的dylib,它有一个重载的operatornew和delete。当我的cocoa应用程序与我的dylib链接时,我有一个BAD_ACCESS_ERROR,因为Cocoa试图通过我的operatordelete从我的dylib中释放内存。所以我认为我可以使用unexported_symbols_list选项,但是operatordelete,delete[],new,new[],new(..)的修饰名是什么? 最佳答案 您可以使用nm工具从您的库中提取导出的符号,然后使用c++filt进行分解,然后找到哪些对应于

c++ - Objective C "@property (nonatomic, retain)"的 C++ 等价物是什么?

我想知道如何在C++中正确创建属性。在ObjectiveC中,我使用“@property”(通常与(nonatomic,retain)属性一起使用)。C++中正确的方法是什么?谢谢!! 最佳答案 正如Seva所说,C++中没有那种意义上的属性。你可以做什么:用boost::share_ptr写一个类成员变量,并可选择为该成员编写getter和setter。但这甚至不是真正必要的,尽管可能被认为是良好的行为。typedefboost::shared_ptrStringPtrT;classA{public:voidsetStringPr

c++ - 在cocoa项目中使用boost库

理论上可以在cocoa项目中使用boost库(例如boostthreads)? 最佳答案 是的,没有什么能阻止你这样做:您可以混合使用Objective-C和C++-结果称为Objective-C++您当然也可以链接到C和C++库 关于c++-在cocoa项目中使用boost库,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2706296/