在macOS Cocoa应用程序中嵌入可执行jar文件

时间:2017-07-13 13:51:36

标签: java swift macos cocoa

有谁知道如何在macOS Cocoa应用程序中嵌入可执行jar文件?

我已经将后端编写到Java桌面应用程序中,我想将其嵌入到macOS Cocoa应用程序中,以便我可以编写一个简单的UI并将最终产品放在Mac App Store中。后端非常独立于Cocoa App的黑盒子。我需要的是Cocoa应用程序在特定时间执行jar文件。

我发现这个问题似乎与我想要做的非常相似:Embedding a Java runtime into a sandboxed Cocoa Mac app但是我担心这些信息现在可能已经过时了。我不想弄清楚如何嵌入JRE和jar文件只是让我的应用程序无法通过App Store审核。有谁知道Apple是否还允许这种事情?我知道他们已经尽可能地远离Java了。

如果这个方法仍然有用,有人会介意如何在Cocoa应用程序中嵌入实际的JRE,然后如何使用NSTask来启动jar文件吗?

1 个答案:

答案 0 :(得分:0)

您会将library(jsonlite) library(tidyverse) library(assertr) data<-fromJSON("http://www.librarything.com/api_getdata.php?userid=cau83&key=392812157&max=450&showCollections=1&responseType=json&showDates=1") books.lst<-data$books #create df from json create.df<-function(item){ df<-map_df(.x=books.lst,~.x[[item]]) df2 <- t(df) return(df2) } ids<-create.df(1) titles<-create.df(2) ratings<-create.df(12) authors<-create.df(4) #need to get the book id when i build the date df's startdates.df<-map_df(.x=books.lst,~.x$startfinishdates) %>% select(started_stamp,started_date) finishdates.df<-map_df(.x=books.lst,~.x$startfinishdates) %>% select(finished_stamp,finished_date) collections.df<-map_df(.x=books.lst,~.x$collections) #from assertr: will create a vector of same length as df with all values concatenated collections.v<-col_concat(collections.df, sep = ", ") #assemble df books.df<-as.data.frame(cbind(ids,titles,authors,ratings,collections.v)) names(books.df)<-c("ID","Title","Author","Rating","Collections") books.df<-books.df %>% mutate(ID=as.character(ID),Title=as.character(Title),Author=as.character(Author), Rating=as.character(Rating),Collections=as.character(Collections)) 文件作为资源包含在应用程序捆绑包中,并使用jar执行。

但是,这违反了App Store准则:

NSTask

您仍然可以将应用程序发布为Developer ID Application